微服务扩展新途径:Messaging

  • 时间:
  • 浏览:1
  • 来源:神彩大发快3_彩神大发快3官方

使用服务编排方式 时,“客户服务”却不用须了解“忠诚值服务”和“邮件服务”。不可能 “客户服务”有已经 我对“客户话题”发出好几个 多 事件,“忠诚值服务”和“邮件服务”就会去了解客户事件协议,并订阅正确语句题——话题的发布-订阅语意会确保每个事件一齐被分发给好几个 多 订阅者。

原文地址:https://dzone.com/articles/scalable-microservices-through-messaging

实现该形式的方式 有太久太久,还还后能 利用 Camel 和 ActiveMQ :

服务互动类型主要有五种:同步和异步。

【编者按】服务编排是微服务设置的好几个 多 重要方面。本文在利用 ActiveMQ 虚拟话题来实现什儿 目标的一齐,不会 提供实用性指导。文章系国内 ITOM 管理平台 OneAPM 编译呈现。

举个例子:

在同步互动中,服务使用者会发出请求,有已经 在操作完成、收注销复前阻止什儿 活动运行,HTTP 协议只是好几个 多 很好的同步互动例子。通常情况报告下,什儿 互动与请求-回复互动类型、 HTTP 协议也有相关的(当然,也还还后能 利用异步请求或消息传递来登记、请求回调函数的结果,不过什儿 做法不太常见)。

本文转自 OneAPM 官方博客

在异步互动中,服务使用者发出的请求不用在操作完成后才还还后能 运行。一旦请求确认被收到,服务使用者就还还后能 接着做什儿 的活动。什儿 类型支持互动沟通采用发布-订阅模式,累似 :不用须服务使用者调用什儿 服务操作,只必须生产者提出事件,等待图片感兴趣的使用者做出反应即可。

在服务编制中必须有好几个 多 中心实体(即例子中的服务 A),去了解被调用的什儿 服务。利用编排方式 ,还还后能 将什儿 责任分配给个体服务,由它们来负责订阅“有意思的”事件。

有已经 必须五种融合了话题和队列的综合形式,充分发挥什儿 个多 功能:既都都还还后能 利用“客户服务”的发布-订阅来发布事件,确保所有服务都能收到该事件;也还还后能 通过竞争的使用者,使个体服务实例实现负载均衡并进行扩展。

使用队列的好几个 多 好处只是它还还后能 轻松扩展使用者,并开启多个“忠诚值服务”和“邮件服务”,从而将负载均衡地分布于不同的使用者间。

除了哪几种技术层面的考虑,还应该注意考量服务互动的什儿 层面:耦合和责任。

话题执行发布-订阅,而也有竞争使用,这使得使用者的扩展变得更加困难。不可能 (横向)扩展“忠诚值服务”并在好几个 多 实例中进行试验,还还后能 发现它们会收到同样的事件,原本扩展语句并没人 哪几种益处(除非服务是等幂的)。

不可能 我想要了解更多关于本话题的内容,请查阅 Building Microservices。接下来,本文将集中讨论何如使用消息传递实现服务编排。

目前,微服务使用已十分普遍,利用服务编排(而也有服务编制)来进行微服务互动的想法也很常见。本文将讲述何如通过 ActiveMQ 虚拟话题来设置服务编排和基于服务互动的可扩展事件。

假设趋于稳定好几个 多 与“邮件服务”互动的“客服服务”,最简单的实现方式 只是使用好几个 多 允许“客户服务”给“邮件队列”发送消息的队列。不可能 “客户服务”必须跟“忠诚值服务”互动,“客户服务”就要给“忠诚值服务”再发一条消息。什儿 方式 下,“客户服务”必须了解“邮件服务”和“忠诚值服务”这两者,有已经 把正确的消息发给对应的队列。简而言之,整个互动过程也有由“客户服务”编制的。

另外,用编排扩展微服务还还还后能 通过事件驱动来实现,这里只是一篇介绍什儿 方式 的推荐文章。

服务编制是通过队列实现消息传递的。队列都都还还后能 在竞争使用者模式下实现负载均衡,有已经 确保消息和使用者一一对应。

以上所述只是最近出版的著作 Camel Design Patterns 里介绍的多种模式之一。正不可能 总爱将Camel 与 ActiveMQ 一齐使用,书中也就收录了什儿 ActiveMQ 模式内容。

不可能 服务 A 要和服务 B 互动,是要服务 A 来调用服务 B(编制),还是让服务 B 去订阅正确的时间(编排)呢?

ActiveMQ 虚拟话题是将订阅队列发布到话题中的方式 ,通过好几个 多 简单的命名惯例——所要做的只是取舍话题或队列的命名惯例,无论是自定义的还是默认的都还还后能 。