北京中医医院冻疮 http://m.39.net/pf/a_4698015.htmlRocketMQ发展历史
RocketMQ是一个由阿里巴巴开源的消息中间件,年开源,年成为apache顶级项目。RocketMQ在阿里内部应用是非常广泛的,阿里内部的几千个应用都运行在RocketMQ之上,双十一期间需要处理亿万级别的消息,TPS可以达到几十万。目前支持Java、C/C++,Python、Go四种语言访问。
RocketMQ现在有两个版本,一个是社区开源版,一个是商业的云服务版(AliwareMQ)。最新版本:4.8.0(本文演示版本)。
它的核心设计借鉴了Kafka,所以我们在学习RocketMQ的时候,会发现很多和kafka相同的特性,但是在某些功能上和kafka又有较大的差异,它有以下一些特性:
支持集群模型、负载均衡、水平扩展能力
亿级别消息堆积能力
采用零拷贝的原理,顺序写盘,随机读
底层通信框架采用NettyNIO
NameServer代替Zookeeper,实现服务寻址和服务协调
消息失败重试机制、消息可查询
强调集群无单点,可扩展,任意一点高可用,水平可扩展
经过多次双十一的考验
高可用架构RocketMQ天生对集群的支持非常好,它有以下一些模式:
(1)单Master
优点:除了配置简单没什么优点
缺点:不可靠,该机器重启或者宕机,将要导致整个服务不可用
(2)多Master
优点:配置简单,性能最高
缺点:可能会有少量消息丢失(配置相关),单台机器重启或宕机期间,该机器下未被消费的消息在机器恢复前不可订阅,影响消息实时性
(3)多Master多Slave,每个Master配一个Slave,有多对Master-Slave,集群采用异步复制方式,主备有短暂消息延迟,毫秒级
优点:性能同多Master几乎一样,实时性高,主备间切换对应用透明,不需人工干预
缺点:Master宕机或磁盘损坏时会有少量消息丢失
(4)多Master多Slave,每个Master配一个Slave,有多对Master-Slave,集群采用同步双写方式,主备都写成功,向应用返回成功
优点:服务可用性与数据可用性非常高
缺点:性能比异步集群略低,当前版本主宕备不能自动切换为主
本文采用的是二主二从安装模式,即第四种多Master多Slave
二主二从异步集群安装端口规划首先我买了两台云服务器,平时我会用来学习安装一些中间件,比较方便,大家有条件的话也可以买下,当然也可以通过在本地安装虚拟机的方式来操作。
接下来我要通过这两台服务器来实现二主二从的安装,首先对它们的端口进行一下规划
第一台机器42..77.73端口规划:NameServerBrokerA-masterBrokerB-slave第二台机器39...86端口规划:NameServerBrokerB-masterBrokerA-slave复制代码
画图看上去更加清晰明了一些
下载从