【发布时间】:2017-04-26 11:00:41
【问题描述】:
我有一个关于微服务架构的问题。我正在设计一个基于微服务的系统。我读过几篇文章,我想我理解这个想法。但是,我不知道微服务应该如何相互通信,而它们有不同的业务职责...... 我的意思是,如果我有一个预订火车票的系统,我会将后端应用程序划分为模块:
- 客户端(登录、注销、注册)
- 预订(为用户预订火车座位,为用户获取所有预订)
- 连接详情 (搜索连接,获取连接详情)
- 火车 (关于火车的信息——座位号、等级等)
现在,我只能认为,如果用户搜索连接模块 ConnectionsDetails 与火车模块通信并询问特定的火车详细信息。但是其他微服务如何通信呢?如果用户想登录 - 她/他直接询问客户模块,如果她/他想获得她的所有预订 - 直接询问预订模块等......
所以我的问题是,如果模块做不同的事情,它们应该如何通信?如果我的问题是微不足道的或愚蠢的,我很抱歉,我只是从微服务开始。
编辑: 我并不是说我可以使用什么工具进行交流。我的问题是关于逻辑的。在我展示的示例中,如果客户端可以直接询问另一个微服务,为什么一个微服务可以询问另一个微服务?正如我之前所说,如果他们做不同的事情,他们应该如何沟通(关于他们应该确切地问对方什么)?
【问题讨论】:
-
你想用微服务解决什么问题?
-
查看spring.io/blog/2015/07/14/microservices-with-spring。微服务之间可以使用json进行通信
-
服务之间的通信有很多很多选项。 HTTP、RabbitMQ(或任何其他消息传递系统)、管道,应有尽有。
-
我不是说他们应该如何沟通以及我应该使用哪些工具。
标签: java rest microservices