写点什么

低代码服务编排库 - Commander

作者:yaya
  • 2022 年 3 月 25 日
  • 本文字数:1325 字

    阅读完需:约 4 分钟

一.微服务编排的必要性

微服务是当前流行的软件架构风格,在底层共性技术服务和中台业务服务能力具备后,上层应用应基于这些服务快速地构建,但不可能所有场景都简单调用一个服务就能实现。当存在一定业务规则需要处理的时候,往往都涉及到多个服务的调用,中间还涉及到基础的数据处理,逻辑判断才能够完成。

如果让前端应用来处理这种组合,需要大量编写脚本代码,还不时需要调整,而且存在共性领域服务逻辑对外泄露的问题。其二在前后端分离的场景下,前端并不关心复杂的后端逻辑。

服务编排是对基础的业务服务按照一定的业务规则进行逻辑组合,然后提供一个封装后的组合服务接口给前端的过程。



服务编排引擎可以进行可视化的业务流程编排来降低这些大量重复且没有技术含量的前端脚本、提升服务调用逻辑的可视化。

二.服务编排的方式及开源产品

      当前服务编排主要是 Orchestration 和 Choreography 两种模式。

1、Orchestration(编制)

Orchestration 模式面向流程:通过一个可执行的流程来协同内部及外部的服务交互,通过流程来控制总体的目标、涉及的操作、服务调用顺序。Orchestration 和 BPM、ESB 的思想很相似,首先要有一个流程控制服务,该服务接收请求,依照业务逻辑规则,依次调用各个微服务,并最终完成处理逻辑。

2、Choreography(编排)

Choreography 模式面向协作:通过消息的交互序列来控制各个部分资源的交互,参与交互的资源都是对等的,没有集中的控制。Choreography 可以看作一种消息驱动模式,或者说是订阅发布模式,每笔业务到来后,各个监听该事件的服务,会主动获取消息,处理,并可以按需发布自己的消息。可以把不同队列看作不同种类的消息,微服务看作消息处理函数。

当前主流的微服务编排引擎包括:zeebe-io/zeebe, netflix/conductor, uber/cadence,其适用场景功能特性以及优缺点读者可自行去查阅了解,也有不少布道者写了相关的介绍文章。

三.Commander 的主要功能

Commander 是一个 Orchestration 模式的服务编排框架库,可以嵌入式使用,也提供独立运行的服务端。由 IDE 和运行时两部分构成。IDE 提供所见即所得的服务定义(接入接出通讯配置,接口配置)和处理流程,是一个基于 Eclipse 的低代码开发平台。主要功能如下:

  • 可视化组合服务定义,包括服务 Url,流控标识,熔断标识,请求接口,响应接口,处理流程等;


组合服务定义


  • 可视化流程编排:对于服务处理流程的节点组件,控制模型的属性进行可视化设置;


服务处理流程


·         流程控制模型(顺序、分支、循环、异常抛出、并行);

·         丰富的业务流程处理组件。包括接口解析拼装组件,变量处理脚本组件,服务调用组件等;提供自定义组件接口可方便自行扩展;

·         支持分布式事务能力,在服务调用失败时可以进行重试或冲正操作

·         JSON 报文的拆分,合并,数据映射

·         微服务链路追踪;

·         熔断限流,流量控制;

·         可作为存量业务系统的边车,进行通讯方式(TCP 长连接,TCP 短连接,Http,MQ),报文接口(XML,JSON,SOAP,定长报文,分隔符报文,块报文)的转换,将存量系统的服务注册,访问其他微服务功能。

欢迎对 Commander 感兴趣的朋友访问https://gitee.com/meta_soft/commander

联系方式 meta_soft@163.com

发布于: 刚刚阅读数: 2
用户头像

yaya

关注

I am a freelance software engineer. 2020.12.31 加入

还未添加个人简介

评论

发布
暂无评论
低代码服务编排库 - Commander_服务编排_yaya_InfoQ写作平台