例如,我有一个项目有4个微服务:client-web,admin-web,client-api,admin-api。
这四个微服务应该共享一个数据库代码,我应该将数据库代码作为git的子模块并在每个微服务中使用它吗?
是否违反微服务原则?
答案 0 :(得分:4)
答案 1 :(得分:2)
我认为您应该小心制作共享库并将其包含在您的微服务中,因为它可以为您提供耦合点,这意味着如果您必须对库进行更改,则可能必须更改所有服务,然后你就失去了这种体系结构的一个好处 - 在没有部署整个应用程序的情况下部署小型服务。
我认为更好的方法是让它自己成为微服务。
答案 2 :(得分:0)
微服务应拥有自己的数据库逻辑。因此,对于数据库的每个桃子,您都应该有一个与其通信的微服务。横切关注点应该在自己的服务中调用其他服务,或者在最能代表功能的服务中。
答案 3 :(得分:0)
您可以为数据库创建一个http接口,该接口可以使用REST API与其他微服务进行通信。然后,您可以检查用户权限以了解哪个客户端可以访问给定资源。