消息中间件:为什么我们选择 RocketMQ
Posted 阿里巴巴云原生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了消息中间件:为什么我们选择 RocketMQ相关的知识,希望对你有一定的参考价值。
选型要素
一、从公司层面看, 关注如下几点:
二、从中间件组层面看, 关注如下几点:
三、从最终用户(一般包含业务后端研发以及他们的 Leader )看
RocketMQ 的优势
一、RocketMQ 如何解决和友好面对公司层面的诉求
二、从中间件组层面看,RocketMQ 是如何提供优秀的能力,为业务保驾护航呢?
-
重试、死信机制,友好、无感的业务重试机制。 -
顺序消息、事物消息 -
万级 Topic 数量支持 -
消息过滤 -
消息轨迹追踪 -
主从自动切换 -
原生支持 Prometheus 监控 -
原生支持易用管理平台:RocketMQ Console -
访问权限控制(ACL)
-
RocketMQ 可以支持 99.9% 的写入延迟在 2 ms ,其他的开源消息队列中间件基本都是大于 5 ms ;目前大部分消息队列中间间都支持横向扩展,吞吐上横向扩展几乎都可以满足。RocketMQ 的在滴滴做的性能测试: https://developer.aliyun.com/article/664608 , 大家参考。 -
发送、消费 tps 和 kafka 一个数量级,Topic 数量剧增对于性能影响较小。
-
无 zk 等第三方依赖,开箱即用 -
社区钉钉群、微信群、QQ 群非常活跃,钉钉群、微信群有问必答。 -
社区最近新来一位小姐姐 Commiter ,团队也在不断壮大。
三、对于最终用户:业务研发、业务研发 Leader,他们的核心担忧是提供的技术是否稳定可靠、是否快速方便的接入
Kafka vs RocketMQ
RocketMQ 适用于金融转账消息、订单状态变更消息、手机消息 Push 等业务场景。这些场景 Topic 数量通常过万,对于消息延迟和丢失极度敏感,数据通常是论条处理。对于海量数据的问题,一般地横向扩容完全可以解决。
合适的场景选择合适的产品,万能的产品是不存在的,都是折中,都是取舍。
作者介绍
RocketMQ 学习资料
Apache RocketMQ 开源入门最佳实践:
https://start.aliyun.com/course?spm=a2ck6.17690074.0.0.53c52e7dSi19ML&id=eAz6VTK5
《RocketMQ 分布式消息中间件:核心原理与最佳实践》随书实战:https://start.aliyun.com/course?spm=a2ck6.17690074.0.0.7aec2e7dCPMDFG&id=ASeJlmpX
在 Spring 生态中玩转 RocketMQ:
https://start.aliyun.com/course?spm=a2ck6.17690074.0.0.241e2e7d0aEIxJ&id=hzidp9W1
实验预览图如下:
其他资源
RocketMQ vs. ActiveMQ vs. Kafka:
http://rocketmq.apache.org/docs/motivation/
RocketMQ 源码:
https://github.com/apache/rocketmq
RocketMQ Exporter 源码:
https://github.com/apache/rocketmq-exporter
RocketMQ Spring 源码:
https://github.com/apache/rocketmq-spring
RocketMQ C++ 客户端源码:
https://github.com/apache/rocketmq-client-cpp
RocketMQ Python 客户端源码:
https://github.com/apache/rocketmq-client-python
RocketMQ Go 客户端源码:
https://github.com/apache/rocketmq-client-go
RocketMQ Console 源码:
https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console
RocketMQ Flink Connector 源码:
https://github.com/apache/rocketmq-externals/tree/master/rocketmq-flink
RocketMQ 如何保证消息可靠:
大揭秘!RocketMQ 如何管理消费进度:
以上是关于消息中间件:为什么我们选择 RocketMQ的主要内容,如果未能解决你的问题,请参考以下文章
各种消息队列如何选择?为何选择rocketmq来保证消息不丢失,及应该采用rocketmq哪种通信模式?
各种消息队列如何选择?为何选择rocketmq来保证消息不丢失,及应该采用rocketmq哪种通信模式?
各种消息队列如何选择?为何选择rocketmq来保证消息不丢失,及应该采用rocketmq哪种通信模式?