针对将单块应用程序分解为微服务的人们,您如何处理破解数据库的难题。我所涉及的典型应用程序出于性能和简单性的原因,进行了大量的数据库集成。
如果您有两个在逻辑上不同的表(如果您愿意,可以称之为有界上下文),但通常对大量数据进行聚合处理,则在单块中,您很可能会避免使用面向对象编程,而是使用数据库的标准JOIN功能,在返回聚合视图之前在数据库上处理数据。
那么,当您需要将这些数据拆分为微服务时,如何证明其有效性?毕竟,您可能需要通过 API 联接数据,而不是通过数据库。
我已经阅读了 Sam Newman 的《微服务》一书,在“拆分单块”一章中,他给出了一个“破解外键关系”的例子,并承认通过 API 进行联接会更慢 - 但他接着说,如果您的应用程序已经足够快了,那它变慢了又有何妨呢?
这似乎有些肤浅? 您有哪些经验? 您使用了什么技术使 API 联接表现良好?
如果您有两个在逻辑上不同的表(如果您愿意,可以称之为有界上下文),但通常对大量数据进行聚合处理,则在单块中,您很可能会避免使用面向对象编程,而是使用数据库的标准JOIN功能,在返回聚合视图之前在数据库上处理数据。
那么,当您需要将这些数据拆分为微服务时,如何证明其有效性?毕竟,您可能需要通过 API 联接数据,而不是通过数据库。
我已经阅读了 Sam Newman 的《微服务》一书,在“拆分单块”一章中,他给出了一个“破解外键关系”的例子,并承认通过 API 进行联接会更慢 - 但他接着说,如果您的应用程序已经足够快了,那它变慢了又有何妨呢?
这似乎有些肤浅? 您有哪些经验? 您使用了什么技术使 API 联接表现良好?