技术编程|开源 VS 商业,消息中间件你不知道的那些事( 四 )
RabbitMQ需购买商业JMS客户端实现 。
Rocket采用自定义文本协议实现事务提交、回滚等功能 。
高可用:通过测试当队列服务器出现故障或者网络故障时 , 客户端可以自动连接到其他队列 , 保持业务的不间断 。
所有产品均能实现FAILOVER机制 , RabbitMQ需通过HAProxy来实现FAILOVER 。
仅RabbitMQ能实现消息的无持久化内存复制 。
IBM WMQ、RabbitMQ、RocketMQ、ActiveMQ能实现Master-Slave模式高可用 。
稳定性:通过持续发送消息 , 主机CPU在60%以上压力下 , 消息中间件运行情况 。 各产品均表现出良好的稳定性 , 在连续12小时高并发测试情况下 , 均能保持100%的消息处理正确率 。
扩展功能专题分析
各产品在文件传输功能、事件消息机制、网络限流方面均能较好的实现 。
RabbitMQ文件传输、大文件传输、交易一致性、延迟队列功能需购买JMS客户端实现 。
RocketMQ不支持大文件传输 。
Apollo不支持续传重传、延迟队列功能 。
文件传输功能:通过测试服务器之间的文件传输 , 统计数据发送和接收正确率 , 检验是否有文件丢失或重复 。
所有产品均能实现文件传输功能 。 商业产品本身支持文件传输功能 , 开源产品需通过应用程序实现 。
RabbitMQ文件传输功能需购买JMS客户端实现 。
事件消息机制功能:通过在测试时 , 人为进行网络断连等异常事件 , 在出现异常事件后消息节点会收到异常事件信息 。
所有产品均能实现事件消息机制功能 。
IBM WMQ支持各种事件的配置是否启用 , 如权限事件、禁止事件、本地事件等等 。
网络限流功能:通过调整消息中间件的配置参数 , 测试允许使用的网络带宽 , 进行数据传输 , 检查限流功能 。
IBM WMQ对网络限流支持较为全面 , 能通过消息大小限制、批次传输限制、消息总量限制、内存使用限制、磁盘使用限制等各种配置实现对网络限流功能 。
Oracle JMS可通过消息大小限制、消息总量限制实现对网络限流功能 。
RabbitMQ支持通过对内存使用限制、磁盘使用限制实现对网络限流功能 。
RocketMQ支持通过消息大小限制实现网络限流功能 。
ActiveMQ支持通过内存使用限制实现网络限流功能 。
Apollo支持通过消息总量限制实现网络限流功能 。
本文插图
续传重传功能:通过人为断开网络来测试消息中间件的断点续传能力 , 统计数据发送和接收正确率 , 检查是否有数据丢失或重复 。
除Apollo之外的产品均支持续传重传功能 。
Apollo不支持ConnectionControl command处理 , 不能实现自动重连 , 所以不支持重传功能 。 预计在Apollo1.8版本中实现该特性 。
大文件传输效率:通过进行大文件传输测试消息中间件对大文件传输的支持程度 。
IBM WMQ、Oracle JMS、ActiveMQ、Apollo支持大文件传输 。
RabbitMQ需购买JMS客户端实现 。
【技术编程|开源 VS 商业,消息中间件你不知道的那些事】RocketMQ不支持大文件传输 。
本文插图
交易一致性:通过验证消息中间件是否支持交易最终一致性 。
除Rocket之外的产品均支持交易一致性功能 。
RabbitMQ需购买JMS客户端实现 。
开源版RocketMQ不支持分布式事物 , 商业版ONS支持 。
延迟队列:通过应用程序设置消息延时时间 , 在延时时间后消息是否被丢弃或销毁 , 无法被处理 。
除Apollo之外各产品均支持延迟队列功能 。
RabbitMQ需购买JMS客户端实现 。
总体性能测试结果
各产品在水平扩展性能测试方面 , 均有优秀的表现 。
推荐阅读
- 摄像头|小米截胡中兴屏下摄像头技术,小米研发还是供应链技术?
- 马斯克|马斯克用活猪演示脑机接口技术:实时读取猪脑信息 心灵感应成真了
- 三防|带你了解三防手持终端的秘密
- 第三|原创 小米发布第三代屏下相机技术,或将在Mix 4上首秀?
- 海信|首个新兴显示技术分标委成立 海信牵头制定国标
- 中年|Python编程语言有什么独特的优势呢?
- |马斯克用活猪演示脑机技术,他希望今年年底前能在人体内植入
- 互联网的放大镜|小米截胡中兴屏下摄像头技术,小米研发还是供应链技术?
- 新机发布|原创 小米发布第三代屏下相机技术,或将在Mix 4上首秀?
- 技术|最新《中国禁止出口限制出口技术目录》发布,新增操作系统、密码芯片安全技术
