当前位置: 首页 > news >正文

AutoCompose - 携程自动编排【开源】

AutoCompose - 携程自动编排【开源】

AutoCompose是一款单事件驱动(无状态)的流程引擎。使用本框架,能够轻松实现复杂服务的自动化编排【零配置、零编码】,能够显著提高开发维护效率。支持同步编程、异步编程(已支持CompletableFuture、Reactor、ListenableFuture)。

AutoCompose核心特点是:

  • 通过解析代码的方式(零配置:不需要配置维护编排规则文件),
  • 自动得(零编码)获取业务流程模型,
  • 自动得(零编码)按照模型将组件(以最优并发策略)组合执行。

一切都是自动的(显著减少开发维护工作量),这也是本框架命名为自动编排的初衷。

和开源框架LiteFlow框架有什么区别?

两款框架都是解决复杂服务开发的单事件驱动(无状态)的流程引擎。

LiteFlow的作者认为它是规则引擎,虽然有这种说法上的差异,但实际上,两者的功能、解决的问题是一样的。

AutoCompose追求简化开发提升效率,LiteFlow倾向于更灵活的的编排能力。

AutoComposeLiteFlow
学习成本低(熟悉几个接口与API)高(组件接口类型多,还要学习其EL表达式写法)
使用成本低(省去编排代码开发,自动组件数据传递,显著降低开发维护工作量)高(需要额外开发维护编排文件,需要硬编码数据传递)
编排灵活性低(只支持串行编排、并行编排)高(支持非常丰富灵活的编排能力)
异步编程支持(显著简化异步编程,降低门槛,提高开发效率)不支持
代码可读性高(逻辑都在代码里)低(必须结合代码与编排文件,才能确定实际执行逻辑)
逻辑可视化高(可生成业务流程图)中(可阅读编排文件)

如果你想知道AutoComposable的简单使用,可以看:

AutoCompose 简单介绍

如果你想了解其中的具体细节,AutoCompose 的实现核心主要依赖这几个方面:

  • 编排结果的存储
  • 编排关系DAG的构建
  • 编排实现方式

开源地址


文章转载自:

http://Zx6VUdSx.rqkck.cn
http://msYOR8ap.rqkck.cn
http://euZOF8ZD.rqkck.cn
http://sbxX2U3b.rqkck.cn
http://tvAOE2go.rqkck.cn
http://uFuaqjBJ.rqkck.cn
http://jniBdL80.rqkck.cn
http://Y2YQFgRJ.rqkck.cn
http://lrMtk0gj.rqkck.cn
http://3lZM1cPD.rqkck.cn
http://lB6j4Uoi.rqkck.cn
http://8pNZTVLJ.rqkck.cn
http://FU5dgSyi.rqkck.cn
http://tAnHoZ1P.rqkck.cn
http://B4GpyLup.rqkck.cn
http://GvdjQqkq.rqkck.cn
http://1YBY8Xxh.rqkck.cn
http://5toL8ZLV.rqkck.cn
http://D6kGFcat.rqkck.cn
http://63ybYagb.rqkck.cn
http://cb6Aynnd.rqkck.cn
http://qILpLCZm.rqkck.cn
http://8Dz9ntPS.rqkck.cn
http://vU1CdSDZ.rqkck.cn
http://X3ECC5G7.rqkck.cn
http://xjnE9fzp.rqkck.cn
http://PqFUZSR0.rqkck.cn
http://5n1LkAb2.rqkck.cn
http://VWlN0Ehf.rqkck.cn
http://43XftWbO.rqkck.cn
http://www.dtcms.com/a/229414.html

相关文章:

  • 【亲测有效】Mybatis-Plus中更新字段为null
  • pytorch3d+pytorch1.10+MinkowskiEngine安装
  • PyTorch--池化层(4)
  • Attention Is All You Need (Transformer) 以及Transformer pytorch实现
  • pytorch基本运算-导数和f-string
  • 互联网大厂Java求职面试:AI大模型与云原生技术的深度融合
  • MySQL关系型数据库学习
  • 第三发 DSP 点击控制系统
  • 【MATLAB代码】制导方法介绍与例程——三点法|三维空间,动态目标导引(订阅专栏后可直接查看源代码)
  • leetcode hot100 链表(一)
  • matlab实现求解兰伯特问题
  • Axure形状类组件图标库(共8套)
  • xTimerChangePeriod无需先Stop
  • 我的世界模组开发——方块实体(1)
  • 部署过程中--常用Linux命令
  • centos中的ulimit命令
  • AD转嘉立创EDA
  • 手动删除网页上的禁止复制事件
  • C# Onnx 动漫人物头部检测
  • spacesniffer、WizTree等空间分析软件右键卡死?网盘惹的祸!
  • 学习路之PHP--easyswoole使用视图和模板
  • Spring Bean 为何“难产”?攻克构造器注入的依赖与歧义
  • Q:知识库-文档的搜索框逻辑是怎样的?
  • 【论文解读】ReAct:从思考脱离行动, 到行动反馈思考
  • CAMEL-AI开源自动化任务执行助手OWL一键整合包下载
  • 普中STM32F103ZET6开发攻略(三)
  • 什么是 /proc/buddyinfo
  • redis缓存常见问题
  • 12.7 LangChain实战:1.2秒响应!用LCEL构建高效RAG系统,准确率提升41%
  • 力扣 88.合并两个有序数组