例如,我有一个有4个微服务的项目:client-web,admin-web,client-api,admin-api。如何在微服务之间共享代码?
这四个微服务应该共享一个DB代码,我应该如何将DB代码作为git的子模块并在每个微服务中使用它?
是否违反微服务原则?
例如,我有一个有4个微服务的项目:client-web,admin-web,client-api,admin-api。如何在微服务之间共享代码?
这四个微服务应该共享一个DB代码,我应该如何将DB代码作为git的子模块并在每个微服务中使用它?
是否违反微服务原则?
我认为你应该小心制作一个共享库并将它包含在你的微服务中,因为它可以给你一个耦合点,这意味着如果你必须对库进行更改,则可能必须全部更改你的服务,然后你放弃了这种体系结构的好处之一 - 部署小型服务而不需要部署整个应用程序。
我认为一个更好的方法是使其成为一个微服务。
“如果你必须改变图书馆,你可能不得不改变你的所有服务”,是的,抱歉,但不,这就是为什么它被称为“共享”库,而不是“静态”;) – nonchip
我认为它是总是一个糟糕的主意,有一个“持久性”的微服务。这是一种微服务反模式,它导致了微服务整体。 –
这可能取决于所使用的语言,哪种解决方案效果最好,仍然可能是基于意见的。但我不明白共享一段代码是否会违反微服务原则。毕竟,他们每个人都需要连接到数据库,那么为什么要复制代码? – GolezTrol
通过创建一个库? – jgauffin
名称上的4个微服务似乎更像客户端服务器架构而不是微服务。通常,每个微服务都有自己的实体/数据库访问代码。也许你拥有的DB代码本身就是微型服务? – longday