企业级低代码服务编排库 - Commander

写在前面。低代码最近被炒的火热,各种争议不断,我们且不去添油加醋,仔细想来,在一些特定的场景,在整体架构的特定层面,低代码平台确实是可以发挥其长处的,足矣。

一.微服务编排的必要性

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

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

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

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

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

      当前服务编排主要是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感兴趣的朋友访问Commander: Commander 是一个服务编排框架库。由IDE和运行时两部分构成。IDE提供所见即所得的组合服务配置,接口配置,及处理流程,是一个低代码开发平台。

联系方式 meta_soft@163.com

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容