在这两种方法之间,允许两个微服务交换数据的最佳方法是哪种方式?
通过Rest呼叫。
2-每个微服务将其相关数据公开为数据库视图,以便其他微服务可以使用Spring模板或JPA访问它。
注意,每个微服务在同一个数据库模式中都有自己的(私有)表。
谢谢,
发布于 2018-12-27 04:09:57
这个世界是不完美的,但是在一个完美的世界里,你的微型服务应该很少(如果有的话)直接彼此沟通。一种具有另一种知识的微服务将它们紧密地结合在一起,这比这种分布式体系结构更可取。这种耦合会影响CI/CD,降低容错能力,并在每个服务之外泄漏域信息。
在我们的系统中,唯一被(几乎)所有其他服务访问的微服务是授权服务,因此,如果需要,每个微服务都可以验证它接收到的凭据以执行特定的请求操作。服务之间的所有其他通信都是异步的,并通过集成总线(在本例中为RabbitMQ)传递。
在您提供的两个选项之间,REST可能更好,因为它至少在服务之间添加了一些抽象,但您可能会考虑仔细查看您的建模,看看是否可以减少服务之间的依赖,以消除需求。关于Auth0 这里关于依赖关系和这里的一篇像样的(虽然很老)的文章是一个很好的(很长的)讨论,它来自一个Spring项目负责人。
https://stackoverflow.com/questions/53934850
复制相似问题