rocketMq消息中间件认知
来源:互联网 发布:js秒表倒计时 编辑:程序博客网 时间:2024/05/17 03:37
RocketMQ作为一款高性能、高吞吐量的分布式消息中间件
名词解析:
nameServer:注册中心,所有的producter,broker,comsumer启动时都需要向注册中心注册,nameServer之间不能通讯。
broker:提供关于消息的管理、存储、分发等功能.
l 连接
单个broker和所有nameserver保持长连接
l 心跳
心跳间隔:每隔30秒(此时间无法更改)向所有nameserver发送心跳,心跳包含了自身的topic配置信息。
心跳超时:nameserver每隔10秒钟(此时间无法更改),扫描所有还存活broker连接,某个连接2分钟内(当前时间与最后更新时间差值超过2分钟,此时间无法更改)没有发送心跳数据断开连接。
l 断开
时机:broker挂掉;心跳超时导致nameserver主动关闭连接
动作:一旦连接断开,nameserver会立即感知,更新topc与队列的对应关系,但不会通知生产者和消费者
consumer: 消息的消费者,有两个主要的consumer:DefaultMQPullConsumer和DefaultMQPushConsumer,深入代码后可以发现,rocket的consumer都是采用的pull模式来处理消息的。在集群消息的配置 下,集群内各个服务平均分配消息,当其中一台consumer宕机,分配给它的消息会继续分配给其它的consumer。
producter:消息生产者。每个producer都需要属于一个group,producer的group概念除了在事务消息时起到一些作用,但是其它时候,更多的还只是一个虚拟的概念。
Broker配置方式及优缺点:
1. 单个 Master
这种方式风险较大,一旦Broker 重启或者宕机时,会导致整个服务不可用,不建议线上环境使用。
2. 多 Master 模式
一个集群无 Slave,全是 Master,例如 2 个 Master 或者 3 个 Master
优点:配置简单,单个Master 宕机或重启维护对应用无影响,在磁盘配置为 RAID10 时,即使机器宕机不可恢复情况下,由与 RAID10 磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢)。性能最高。
缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到受到影响。
3. 多 Master 多 Slave 模式,异步复制
每个 Master 配置一个 Slave,有多对Master-Slave,HA 采用异步复制方式,主备有短暂消息延迟,毫秒级。
优点:即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,因为 Master 宕机后,消费者仍然可以从 Slave 消费,此过程对应用透明。不需要人工干预。性能同多 Master 模式几乎一样。
阅读全文
0 0
- rocketMq消息中间件认知
- 分布式消息中间件-Rocketmq
- 消息中间件RocketMQ的安装与部署
- 分布式消息中间件RocketMQ学习教程①
- linux下安装rocketmq消息中间件
- 阿里开源消息中间件MetaQ(RocketMQ)简介
- 淘宝消息中间件RocketMQ的安装和简单使用
- 分布式消息中间件rocketmq的原理与实践
- Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能-转自阿里中间件
- Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能
- Kafka、RabbitMQ、RocketMQ等消息中间件的对比 —— 消息发送性能和优势
- Kafka、RabbitMQ、RocketMQ消息中间件的对比 | 消息发送性能篇
- Kafka、RabbitMQ、RocketMQ 消息中间件的对比 | 消息发送性能篇
- Kafka、RabbitMQ、RocketMQ 消息中间件的对比 | 消息发送性能篇
- Kafka、RabbitMQ、RocketMQ 消息中间件的对比 | 消息发送性能篇
- Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能 (阿里中间件团队博客)
- (一)RocketMQ初步认知
- 【linux】RocketMQ:一个纯java的开源消息中间件--开发测试环境搭建
- Zookeeper-3.4.9 集群搭建
- Linux errno 错误对照表
- springmvc接收前台(可以是ajax)传来的数组list,map,set等集合,复杂对象集合等图文详解
- 我所理解的RESTful Web API [设计篇]
- android 应用开发-实现简单的音乐播放功能
- rocketMq消息中间件认知
- 软件测试思想者
- elk
- JDK1.7的HashMap源码
- hashmap实现原理详解
- 阶乘因式分解(一)
- OpenMV中文教程
- JS时间戳转换[OK]
- linux如何安装qq输入法