Microservices 微服务和消息传递模式

Microservices 微服务和消息传递模式,microservices,message,messagebroker,Microservices,Message,Messagebroker,对于基于微服务的解决方案,正如“文献”中通常描述的那样,在服务前面有一个轻量级层,例如用作负载平衡器或实现某种身份验证和/或授权 我想知道,在这种类型的解决方案中,微服务如何使用消息进行通信。如果没有消息代理,消息传递是否直接在JMS(或类似)级别实现 在不使用任何message broker的情况下实现适当的消息传递解决方案真的有可能吗?消息或事件用于异步通信,在这种情况下,微服务只是一小段代码,以某种方式对新消息作出反应。您可以有一个机制将消息从服务发送到另一个服务,但这样做既不高效也不干净

对于基于微服务的解决方案,正如“文献”中通常描述的那样,在服务前面有一个轻量级层,例如用作负载平衡器或实现某种身份验证和/或授权

我想知道,在这种类型的解决方案中,微服务如何使用消息进行通信。如果没有消息代理,消息传递是否直接在JMS(或类似)级别实现


在不使用任何message broker的情况下实现适当的消息传递解决方案真的有可能吗?

消息或事件用于异步通信,在这种情况下,微服务只是一小段代码,以某种方式对新消息作出反应。您可以有一个机制将消息从服务发送到另一个服务,但这样做既不高效也不干净。因此,我们确实需要一个消息代理,其职责是管理事件/消息。
在我看来,如果没有消息代理,您将无法生存

消息或事件用于异步通信,而在这种情况下,微服务只是以某种方式对新消息作出反应的一小段代码。您可以有一个机制将消息从服务发送到另一个服务,但这样做既不高效也不干净。因此,我们确实需要一个消息代理,其职责是管理事件/消息。
在我看来,没有消息代理,你就无法生存

你的一个问题里面有不同的问题

(1)没有消息代理系统的帮助,微服务系统能否生存?

是的,绝对可以

(2)如果没有消息代理系统的帮助,具有身份验证/授权(identity server)层的微服务系统还能生存吗?

是的,它仍然可以

(3)那么,人们究竟为什么使用消息代理在微服务之间进行通信呢?

消息代理(消息队列)是在子服务之间实现通信(企业集成)的一种经验证的清洁方法

清洁是什么意思

  • 异步通信(无等待)
  • 可以轻松扩展不同的服务(没有JVM依赖关系,可以在不同的服务器中部署不同的服务)
  • 可以集中管理事件(只是另一家酒吧)
  • 可扩展性(易于添加另一个需要与某些现有服务通信的服务)
(4)现在,不使用消息队列的其他替代方案是什么?

  • 简单的重新定向(如果您几乎不想进一步扩展系统,那么这是一个不错的选择)
  • (SPI)(同样适用于小规模,但您也受到了同样的JVM共享限制)

您的单个问题中包含不同的独立问题

(1)没有消息代理系统的帮助,微服务系统能否生存?

是的,绝对可以

(2)如果没有消息代理系统的帮助,具有身份验证/授权(identity server)层的微服务系统还能生存吗?

是的,它仍然可以

(3)那么,人们究竟为什么使用消息代理在微服务之间进行通信呢?

消息代理(消息队列)是在子服务之间实现通信(企业集成)的一种经验证的清洁方法

清洁是什么意思

  • 异步通信(无等待)
  • 可以轻松扩展不同的服务(没有JVM依赖关系,可以在不同的服务器中部署不同的服务)
  • 可以集中管理事件(只是另一家酒吧)
  • 可扩展性(易于添加另一个需要与某些现有服务通信的服务)
(4)现在,不使用消息队列的其他替代方案是什么?

  • 简单的重新定向(如果您几乎不想进一步扩展系统,那么这是一个不错的选择)
  • (SPI)(同样适用于小规模,但您也受到了同样的JVM共享限制)

我可以推荐阅读以下内容:我可以推荐阅读以下内容: