您的位置:首页 > 教育 > 培训 > 动态图表网站_免费b站推广网站mmm_seo外贸推广_second是什么意思

动态图表网站_免费b站推广网站mmm_seo外贸推广_second是什么意思

2025/2/23 17:33:25 来源:https://blog.csdn.net/c20611/article/details/143163208  浏览:    关键词:动态图表网站_免费b站推广网站mmm_seo外贸推广_second是什么意思
动态图表网站_免费b站推广网站mmm_seo外贸推广_second是什么意思

        消息队列是分布式系统中重要的中间件, 在高性能,高可用,低耦合等系统框架中扮演着重要的角色.  分布式系统可以借助消息队列轻松实现以下功能: 

  • 解耦:将一个流程的上下游解开,上游专注生产消息,下游专注消费消息.
  • 广播:上游生产的消息可以轻松被下游服务处理.
  • 削峰:应对突如其来的流量,消息队列扮演者缓冲的作用.保护下游服务,可以根据自己的消费能力来处理消息.
  • 异步:用户发来的请求可以马上返回,不需要多余的等待,后台异步处理消息就行.
  • 冗余:保存历史,处理失败或者异常时可以重试或者回溯,防止丢失.

一  MQ分类

特性ActiveMQRabbitMQRocketMQKafka
公司
社区
ApacheRabbit阿里Apache
开发语言JavaErlangJavaScala&Java
可用性高(主从)高(主从)非常高(分布式)很高(分布式)
支持协议

        0penwire

        STOMP

        REST

        XMPP

        AMQP

        AMQP

        XMPP

        SMTR

        STOMP

自定义协议自定义协议
单机吞吐量万级万级单机万级十万级
消息延迟毫秒级微秒级毫秒级毫秒以内
消息可靠性一般一般
API完备性低(静态配置)
消息丢失-理论上不会丢失理论上不会丢失
消息重复-可控制允许重复理论上会有重复
文档的完备性
提供快速入门
首次部署难度-
部署方式独立、嵌入独立独立独立
PRODUCER-COMSUMER支持支持支持支持
PUBLISH-SUBSCRIBE支持支持支持支持
REQUEST-REPLY支持支持支持-
授权方式开源开源开源开源
持久化内存、文件、数据库内存、文件磁盘文件内存、文件

二  优缺点

消息队列优点缺点
RabbitMQ1.支持AMQP协议
2.基于erlang语言开发 ,高并发性能较好
3.工作模式较为灵活
4.支持延迟消息
5.提供较为友好的后台管理页面
6.单机部署 ,1~2WTPS
1.不支持水平扩容
2.消息吞吐量三者最差
3.当产生消息堆积 ,性能下降明显
4.消息重发机制需要手动设置
5.不支持消息重复消费
RocketMQ

1.高可用 ,高吞吐量 ,海量消息堆积 ,低延迟性能上 ,都表现出色
2.api与架构设计更加贴切业务场景
3.支持顺序消息
4.支持事务消息
5.支持消息过滤
6.支持重复消费
7.支持延迟消息
8.支持消息跟踪
9.天然支持集群、负载均衡
10.支持指定次数和时间间隔的失败消息重发
11.单机部署 ,5~10WTPS

1.生态圈相较Kafka有所不如
2.消息吞吐量与消息堆积能力也不如Kafka
3.不支持主从自动切换
4.只支持Java
Kafka1.高可用 ,高吞吐量 ,低延迟性能上 ,都表现出色
2.使用人数多 ,技术生态圈完善
3.支持顺序消息
4.支持多种客户端
5.支持重复消费
1.依赖分区 ,消费者数量受限于分区数
2.单机消息过多时 ,性能下降明显
3.不支持事务消息
4.不支持指定次数和时间间隔的失败消息重发
ActiveMQ

1.单机吞吐量过万.

2.时效性ms级.

3.可用性高.

4.支持持久化到数据库

1.非常古老的MQ了

2.官方社区现在对 ActiveMQ 5.x 维护越来越少

3.不够轻巧(源代码比RocketMQ多)

4.对队列数较多的情况支持不好

三 如何选择

MQ描述
RabbitMQerlang开发,对消息堆积的支持并不好,当大量消息积压的时候,会导致 RabbitMQ 的性能急剧下降,每秒钟可以处理几万到十几万条消息。
RocketMQjava开发,面向互联网集群化功能丰富,对在线业务的响应时延做了很多的优化,大多数情况下可以做到毫秒级的响应,每秒钟大概能处理几十万条消息。
KafkaScala开发,面向日志功能丰富,性能最高,当你的业务场景中,每秒钟消息数量没有那么多的时候,Kafka 的时延反而会比较高,所以,Kafka 不太适合在线业务场景。
ActiveMQjava开发,简单,稳定,性能不如前面三个,小型系统用也ok,但是不推荐,推荐用互联网主流的。

四  建议

  • Kafka 被称为大数据的杀手锏, 谈到大数据的消息传入 ,则绕不开Kafka.  以百万级TPS 名声大造. 成为了大数据领域的宠儿.   不过对于一些追求高吞吐量, 大型公司可以考虑
  • RocketMQ  阿里巴巴产品, 用java语言实现的. 设计时参考了Kafka . 并在其做了自己的改进. 被阿里广泛应用. 扩展性好,支持 10 亿级别的消息堆积. 对于一些可靠性要求高的场景,建议选择. 
  • RabbitMQ  2007年发布, 是当前主流消息中间件之一.  由于 erlang 语言的高并发特性,性能较好; 吞吐量到万级MQ 功能比较完备,健壮、稳定、易用、跨平台、 支持多种语言.   对于技术一般的可以考虑.
  • ActiveMQ  因为太老了,不多说. 

如果看完该文章, 不知道什么是MQ ,为什么要用MQ的可以阅读一下👇为什么要用MQ? MQ到底有什么用? (带图详解). 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com