前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式微服务流程编排简介

分布式微服务流程编排简介

作者头像
lyb-geek
发布2019-11-20 11:41:15
1.5K0
发布2019-11-20 11:41:15
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路

微服务的流程编排将成为下一个要解决的大问题。在撰写本文时,有几种解决方案试图在该领域竞争,主要是构建自己的(文本)领域特定语言来描述业务流程。在我看来,编排应该改为在BPMN 2.x中表达,因为它是为此目的而精心设计的,易于理解且成熟的语言。

类似于SOA的编排

SOA专注于围绕业务功能构建的服务之间的远程通信。中央流程引擎同步地远程调用分布式服务。集成在状态处理过程引擎和无状态服务之间执行。

此类同步系统有两种不同的实现方式。

  1. Connector连接器风格的集成模式:如果处理引擎使用所选择的协议(通常HTTP)直接调用服务(S1,S2,S3)。
  2. RPC集成模式:如果引擎调用的本地代表这些设备通过选择的协议(HTTP,Java RMI的或任何其它同步协议)调用远程服务(S1,S2,S3)。

在这两种情况下,集成都需要引擎和服务同时在线。引擎可能知道服务的位置,或者使用注册表或代理(记住 Webservice三角 )来解决此问题,并且服务使用面向调用的实现来代表流程引擎执行工作。

消息驱动编排

代替同步调用,中央引擎可以将消息发送到队列或主题,而无状态服务订阅这些消息。不需要同时提供引擎和服务。结果,服务使用面向订阅的实现来代表流程引擎执行工作。

根据所使用的消息传递抽象,有两种实现类型:

  1. 消息传递基础结构可能是提供队列(Q1,Q2,Q3)概念的中间件(例如,使用中央消息传递总线)。引擎使用队列将异步消息发送到服务(S1,S2,S3)。
  2. 代替使用队列,过程引擎可以将信息发布到预定义的主题(T1,T2,T3)。主题订阅可以是流程引擎的一部分(也就是上面显示的外部任务模式),也可以位于集中式消息中间件上。

分布式编排

业务流程本身是分布式的。服务不会变为全状态引擎和无状态服务之间的分离,而是变为全状态(并获得自己的状态处理方式,例如使用业务流程),并且在业务流程之间进行集成(例如,在流程引擎PE1,PE2,PE3中运行) )。

Camunda BPM的外部任务模式

外部任务模式是Camunda BPM在7.4版中引入的,它是打破工作流整体走向分布式工作流编排的最重要功能之一。最初,它旨在提供与面向调用相反的面向订阅的服务任务实现。也就是说,如果引擎执行服务任务,则它不是在调用委托来调用(远程)服务,而是创建外部任务记录,并等待(远程)外部任务工作者获取并执行它。

作者:IT技术分享

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档