DamiBus v0.29 发布,本地多模块解耦框架
DamiBus,专为本地多模块之间通讯解耦而设计(尤其是未知模块、隔离模块、领域模块)。零依赖,特适合 DDD。
特点
结合 Bus 与 RPC 的概念,可作事件分发,可作接口调用,可作异步响应。
- 支持事务传导(同步分发、异常透传)
- 支持事件标识、拦截器(方便跟踪)
- 支持监听者排序、附件传递(多监听时,可相互合作)
- 支持 Bus 和 Api 两种体验风格
与常见的 EventBus、ApiBean 的区别
Dami | EventBus | Api | Dami 的情况说明 | |
---|---|---|---|---|
广播 | 有 | 有 | 无 | 发送(send) + 监听(listen) 以及 Api 模式 |
应答 | 有 | 无 | 有 | 发送并等响应(sendAndResponse) + 监听(listen) + 答复(reply) 以及 Api 模式 |
回调 | 有+ | 无 | 有- | 发送并等回调(sendAndCallback) + 监听(listen) + 答复(reply) |
耦合 | 弱- | 弱+ | 强++ |
如果涉及类加载器隔离:请在主程序标为编译,在其它模块标为可选。
本次更新了什么?
- TopicRouterPatterned 增加排序支持
- TopicRouterPatterned 分离路由能力,可定制
- 增加基于 Tag 的路由模式定制
- 增加 @DamiTopic:index 注解属性
- dami-springboot-starter,增加 spronboot 2.0 的兼容
- 修复 dami-springboot-starter 实现类被代理后不能正常注册与注销的问题
新增加的定制效果(详见仓库主页。也可按需定制自己的 Routing):
public class Demo15_path { public void main(){ //切换为模式匹配路由器 + RoutingPath(支持 * 和 ** 占位符;支持 / 或 . 做为间隔) DamiConfig.configure(new TopicRouterPatterned(RoutingPath::new)); //拦截 Dami.bus().listen("demo/a/*", (payload) -> { System.err.println(payload); }); //发送事件 Dami.bus().send("demo/a/1", "world1"); Dami.bus().send("demo/a/2", "world2"); } }
public class Demo15_tag { public void main(){ //切换为模式匹配路由器 + RoutingTag(":"前为主题,后按 "," 号分割作为tag) DamiConfig.configure(new TopicRouterPatterned(RoutingTag::new)); //拦截 Dami.bus().listen("demo.a:id", (payload) -> { System.err.println(payload); }); //发送事件 Dami.bus().send("demo.a:id", "world1"); Dami.bus().send("demo.a:id,name", "world2"); } }
疑问: 为什么不用分布式消息队列呢?不好意思,真的是不同的维度。
项目地址

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Jarboot 服务管理与诊断、让运维更简单 v3.0.0-beta3 —— 集群模式
Jarboot 是一个强大的 Java 进程管理、诊断的平台,可以在线管理、监控及诊断本地和远程的 Java 进程。 官方文档:www.yuque.com/jarboot 3.0.0-beta3(9,2023) 新特性:集群模式 支持定时任务类型 修复目录中文连接超时bug 服务重启和删除功能 上下键历史命令功能 新版 UI 视频展示:https://www.bilibili.com/video/BV1Nh4y1g7No/ 下载 & 使用 包下载:https://gitee.com/majz0908/jarboot/releases GitHub 主页:https://github.com/majianzheng/jarboot Gitee 主页:https://gitee.com/majz0908/jarboo Nginx 反向代理配置:使用 Nginx 代理 Jarboot 时如何配置 与 Arthas 相比有何区别:Arthas 与 Jarboot 的源码实现对比 更多帮助见官方文档:www.yuque.com/jarboot/
- 下一篇
qiaoshengda-es-client 3.0.4 已经发布,ES 查询客户端
qiaoshengda-es-client 3.0.4 已经发布,ES 查询客户端 此版本更新内容包括: 【新增】新增VConsole控制台,可以查看报错原因,在右上角的bug对话框下面打开 【新增】基础查询增加missing查询条件 #基础筛选希望新增exist类 【新增】数据浏览准备增加快捷提示,选择链接、索引后,在条件输入框中输入时,会有提示 【新增】增加服务器相关接口,如果实现了src-server中的接口,可以打包为docker镜像 【更新】数据浏览按钮优化 【更新】首页布局优化,新增两种查询跳转方式 #概览 能增加跳转到 数据浏览 的按钮么 【修复】修复打开最后一次链接 @兔小巢 详情查看:https://gitee.com/qiaoshengda/es-client/releases/3.0.4
相关文章
文章评论
共有0条评论来说两句吧...