在春季使用微服务架构

时间:2018-07-19 09:36:33

标签: spring-boot microservices spring-cloud-netflix

我正在构建一个基于Spring Boot中微服务架构的项目。该项目被划分为多个模块,并且使用了Maven依赖管理。

现在,我想使用另一个模块中一个模块的服务。我有很多春季申请。例如,我有两个名为A和B的应用程序。我想在B中使用A中的类,在A中使用B中的类。在这种情况下,我使用了maven依赖关系,但这并不是完全相互使用服务的方式,因为我面临循环依赖。

该如何解决该问题?

3 个答案:

答案 0 :(得分:2)

在微服务之间共享类不是一个好主意,如果要替换微服务A,则必须调整微服务B。 每个服务必须实现自己的数据类,该数据类包含该服务所需的字段。

MicroService A和MicroService B都可以包含类Foo,但是这些类的字段可以不同。也许两者都包含字段“ id”和“名称”,但是只有微服务A还需要字段“日期”来完成其工作。

答案 1 :(得分:1)

如果您的某些类需要包含在Microservices中,我认为最好制作一个shared library并将共享类放入其中,然后在其中使用shared library您的Microservices

实际上,我认为将需要包含在大多数Microservices中的类放在shared library中并使用该库是一个好主意。但是要小心,因为它可能涉及tight coupling,这在Microservices Architecture中并不是一件好事。

我个人认为一些Configuration类和一些Event models使用的Microservices是很好的候选人。但是我不认为在Service之间共享Microservices类是一个好主意。相反,他们应该使用彼此的服务,因为它们是完全独立的并且正在使用外部服务。

答案 2 :(得分:0)

创建一个公共实体应用程序,并将该实体应用程序添加为依赖项。例如,假设您已将用户数据存储在micorservice1(MC1)中,并且在其他微服务(例如MC2,MC3,MC4等)中需要此类(User),则可以创建一个像util这样的实体应用程序,并将此依赖项添加到必填项中。微服务。