如何在智能告警平台CA触发测试告警
753
2022-11-04
软件测试培训之常见MQ测试分类
1. ActiveMQ
优点:
单机吞吐量: 万级。
时效性: ms级。
可用性:高。
消息可靠性:较低概率出现丢失数据。
缺点
官方社区现在对于 ActiveMQ 5.x的版本维护越来越少,高吞吐量场景较少使用。
2. Kafka
Apache下的一个子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统。尤其在大数据上是个杀手锏,吞吐量在百万级,在数据采集、传输、存储的过程中发挥举足轻重的作用。
优点
单机吞吐量: 百万级。
时效性: ms级。
可用性:非常高。
消息可靠性:可配置 0 丢失。
分布式:一个数据有多个副本,少数机器宕机也不会丢失数据。
缺点
单机超过64个队列/分区,CPU会明显变高,队列越多越高,发送消息响应时间变长。
消费失败不支持重试。
Kafka主要特点是基于PULL的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输,适合产生大量数据的互联网服务的数据收集业务。
3. RocketMQ
阿里系下开源的一款分布式、队列模型的消息中间件,是阿里参照kafka设计思想使用java实现的一套MQ,并做了自己的改进。被阿里广泛的应用在订单、交易、充值、流计算、消息推送、日志流处理等场景。
优点
单机吞吐量: 十万级。
时效性: ms级。
可用性:非常高。
消息可靠性:可配置 0 丢失。
分布式:支持。
扩展性好,支持10亿级别的消息堆积。
源码是java,有利于定制。
缺点
支持的语言不多,主要是java,C++还不成熟。社区活跃也一般,没有在 MQ 核心中实现 JMS 等接口,有些系统需要迁移则要修改大量代码。
RocketMQ 天生为了金融互联网而生,对于可靠性要求很高的场景,比如电商里的扣款,它更值得信赖。
4. RabbitMQ
使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP,STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。
优点
单机吞吐量: 万级。
时效性:μs级。
可用性:高。
消息可靠性:基本不丢失。
支持多语言。
社区活跃度高,更新频率高
缺点
商业版需要付费,学习成本较高。
RabbitMQ 性能好,时效性强,管理界面也很友好。如果数据量没那么大,中心型业务可以优先选择功能完备的 RabbitMQ。
发表评论
暂时没有评论,来抢沙发吧~