开篇
-
DeFiBus=RPC+MQ,是微众银行基于开源消息中间件打造的安全可控的分布式金融级消息总线。
-
DeFiBus不仅提供了RPC同步调用,还提供了MQ的异步事件通知、事件组播和广播等常用服务调用和消息模式,同时增加了应用多中心多活、服务就近、灰度发布等分布式场景下的高可用能力。在对于机器故障的容错能力方面的增强,也让消息总线的服务更加稳定可靠,为业务提供7x24的服务。
-
熟知RocketMq架构的应该能够一眼看出来,DeFiBus完全是基于RocketMq的底座来集成新特性,不过跟我们常规的在RocketMq的各组件集成feature的方式不同,DeFiBus在RocketMq的组件之上构建了自己的组件,包括namesvr、broker、producer、consumer等,是标准的站在巨人肩膀上进行二次开发的典范。
-
之所以选择研究下DeFiBus,一来是源自ArchSummit峰会的分享,二来是因为DeFiBus集成的特效比较有实际借鉴意义,想学习别人的先进经验。
DeFiBus的组件介绍
defibus-arch说明:
- 上图取自DeFiBus的官网介绍
- DeFiBus的包含了RocketMq原有的Namesrv、Broker、Producer、Consumer等组件。
- DeFiBus扩展了元数据管理增加了其它特性。
- DeFiBus在Producer和Consumer侧增加了EventMesh代理层。
DeFiBus的核心组件
说明:
- defibus-broker:在RocketMq的broker进行了新的特性集成。
- defibus-client:在RocketMq的producer和consumer进行了新的特性集成。
- defibus-common:defibus通用的功能。
- defibus-namesrv:在RocketMq的namesrv进行了新的特性集成。
- defibus-tools:defibus通用的工具功能。
- defibus-examples:defibus的使用案例。
DeFiBus特性介绍
- RPC调用:即“Request-Reply”模式,支持系统间的同步调用
- 消息发布/订阅:消息的发布和订阅
- 灰度发布:服务级别的灰度发布
- 熔断机制:应用实例级别的熔断
- 流量控制:队列级别的限流
- 服务就近:就近进行服务的请求和响应,减少跨区调用
- 应用多活:应用多中心多活
- 动态扩缩队列 :自适应应用实例数量,动态调整队列个数
- 容错机制:故障和错误隔离
- 服务代理:云原生多语言的代理EventMesh
- 服务治理:服务元数据的管理(待开源)
- 服务路由和定位:动态路由及定位(待开源)
- 平滑升级:平滑升级、平滑扩容(待开源)
网友评论