例如,我有一个包含4个微服务的项目:client-web、admin-web、client-api和admin-api。
这四个微服务应该共享一个DB代码,我应该将DB代码作为git的子模块,并在每个微服务中使用吗?
这是否违反了微服务原则?
这四个微服务应该共享一个DB代码,我应该将DB代码作为git的子模块,并在每个微服务中使用吗?
这是否违反了微服务原则?
我认为你需要小心制作共享库并将其包含在你的微服务中,因为它可能会给你带来耦合点,这意味着如果你必须对库进行更改,你可能必须修改所有的服务,那么你就失去了这种架构的一个优势——部署小型服务而无需部署整个应用程序。
我认为更好的方法是将其制作成一个独立的微服务。
微服务应该拥有自己的数据库逻辑。因此,对于您的每个数据库,您都应该有一个与之通信的微服务。横切关注点应该在它们自己的服务中调用其他服务或最能代表功能的服务中。