DamiBus 0.56,本地多模块调用框架(1000 万/秒)
DamiBus,专为本地多模块之间通讯解耦而设计(尤其是未知模块、隔离模块、领域模块)。零依赖。
特点
结合 Bus 与 RPC 的概念,可作事件分发,可作接口调用,可作响应订阅。
- 支持事务传导(同步分发、异常透传)
- 支持事件标识、拦截器(方便跟踪)
- 支持监听者排序、附件传递(多监听时,可相互合作)
- 支持 Bus 和 Api 两种体验风格
与常见的 EventBus、ApiBean 的区别
DamiBus | EventBus | Api | DamiBus 的情况说明 | |
---|---|---|---|---|
广播 | 有 | 有 | 无 | 发送(send) + 监听(listen) 以及 Api 模式 |
应答 | 有 | 无 | 有 | 发送并请求(sendAndRequest) + 监听(listen) + 答复(reply) 以及 Api 模式 |
回调 | 有+ | 无 | 有- | 发送并订阅(sendAndSubscribe) + 监听(listen) + 答复(reply) |
耦合 | 弱- | 弱+ | 强++ |
如果涉及类加载器隔离:请在主程序标为编译,在其它模块标为可选。
本次更新了什么?
- 添加 DamiBus::sendAndRequest 带超时的接口
- solon 升为 1.6.2
性能测试?
瞬发 1000万个事件,1秒左右可发完(基于 jdk11 测试):
public class SendTest { static Integer count = 0; public static void main(String[] args) { Dami.bus().listen("test.demo", e -> { count = count + 1; }); long start = System.currentTimeMillis(); for (int i = 0; i < 10_000_000; i++) { Dami.bus().send("test.demo", "1"); } System.out.println(System.currentTimeMillis() - start + "::" + count); } }
疑问: 为什么不用分布式消息队列呢?不好意思,真的是不同的维度事儿。
项目地址

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
openKylin 1.0.1 版本 11 月更新日志
11月份,openKylin社区各SIG组修复并通过QA SIG验收的问题已累计完成三次推送更新,还未更新升级的小伙伴现在可以将系统更新到最新版本进行体验,同时也欢迎更多新朋友使用openKylin系统,提出您的宝贵意见。 一、系统升级方式 方式一、前往系统设置—更新界面按提示完成系统更新。 方式二、通过终端运行以下命令进行更新: sudo apt updatesudo apt upgrade 二、更新日志 【搜狗输入法】修复候选词遮挡、候选词错误、窗口出现在左上角等问题; 【语音助手】修复关于界面关闭按钮的悬浮提示文字汉化问题; 【语音助手】修复点击托盘处语音助手会在任务栏出现图标的问题; 【控制面板】修复用户手册中修改密码窗口与实际不一致的问题; 【控制面板】修复关于里的隐私协议内容为空白的问题; 【控制面板】修复控制面板点击字体崩溃的问题; 【控制面板】修复Wayland环境下关于界面无隐私协议的问题; 【控制面板】修复隐私协议中的大小写错误; 【计算器】修复平板模式下未全屏化的问题; 【计算器】修复计算器右上角“选项”悬浮提示未汉化的问题; 【USD】修复Wayland模...
- 下一篇
每日一博 | 语言大模型的推理技巧
本文探讨了一系列语言大模型的推理优化技巧,涵盖KV缓存、量化和稀疏性等方法,并分享了如何有效实施这些技术。对于想要优化Transformer模型,以期提升推理速度或效率的人来说值得一读。 本文作者为机器学习研究员Finbarr Timbers,他曾是DeepMind的工程师。 (本文由OneFlow编译发布,转载请联系授权。原文: https://www.artfintel.com/p/transformer-inference-tricks) 作者 |Finbarr Timbers OneFlow编译 翻译|杨婷、宛子琳 1 键值(KV)缓存 目前,键值(KV)缓存是最常见(也是最重要)的解码器优化方法。在解码器模型中,对于每次解码迭代,提示的键和值将是相同的。此外,一旦你运行了一个词元,该词元的键和值将在后续的每个迭代中保持不变。因此,你可以缓存提示,并在解码时逐渐将每个词元的KV张量添加到缓存中,这样可以减少大量计算。在注意力机制中,我们能够将形状为(batch, context_length, feature_dim)的两个张量相乘,变为将形状为(batch, 1, f...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6