RocketMQ基础知识
Posted 乐观男孩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RocketMQ基础知识相关的知识,希望对你有一定的参考价值。
RocketMQ架构
概述
Apache RocketMQ(阿里巴巴贡献给Apache)是一个分布式消息和流媒体平台,具有低延迟、高性能、高可靠、万亿级容量和灵活的可扩展性。它包括四个部分:Name Server、brokers、producers和consumers。每一个部分都可以水平扩展,不存在单点故障问题。
Name Server
Name Server提供轻量级的服务发现和路由。每一个Name Server记录着完整的路由信息,提供相应的读写服务,并且支持快速的存储扩展。Name Server主要有两个功能:
1、Broker管理:Name Server接收Broker集群的注册和提供心跳机制以检测broker是否存活。
2、路由管理:每一个Name Server都会持有Broker集群的完整路由信息和客户端需要查询的Queue信息。
Broker
Brokers通过提供轻量级的Topic和Queue机制来处理消息存储。它们支持推和拉模式、通过复制方式支持容错机制、且提供强大的峰值填充和按原始时间顺序存储数千亿条消息的能力。另外,Brokers提供故障恢复、丰富的指标统计和告警机制。
1、Broker包含以下几个重要的子模块
(1)、远程模块:broker的入口,主要处理客户端的请求
(2)、客户端管理:管理客户端(producer/consumer)、维护consumer的topic订阅信息
(3)、储存服务:提供简单的API来存储和查询物理磁盘的信息
(4)、高可用服务:提供在Master broker和Slave broker之间同步数据功能
(5)、索引服务:通过指定的key来建立消息索引,并启动快速查找消息的能力。
2、Broker复制模式
Broker复制模式,指Master broker复制消息到Slave broker模式。支持同步和异步模式。
同步模式:意味着客户端发送消息到Master broker后,Master broker成功将消息同步到Slave broker后才会响应客户端。
异步模式:意味着客户端发送到Master broker后,只要Master broker对消息处理完后就马上响应客户端,消息复制到Slave broker在后台异步进行。
同步/异步方式,在broker配置文件中指定:brokerRole=ASYNC_MASTER/SYNC_MASTER。
Producer
Producers支持分布式部署。Producers通过多种负载均衡模式将消息发送到Broder集群。消息发送过程支持快速失败和低延迟特点。
Consumer
Consumer同样支持分布式部署和推拉模式,支持消息集群消费和广播模式、提供实时的消息订阅机制。
RocketMQ客户端如何找到Name Server
RocketMQ客户端(Producer/Consumer)会从Name Server中查询Queue的路由信息,但是RocketMQ客户端如何找到Name Server。主要有以下几种方式:
1、编程方式:producer.setNamesrvAddr(“ip:port”)
2、配置方式:rocketmq.namesrv.addr
3、环境变量:使用NAMESRV_ADDR
4、HTTP Endpoint
以上是关于RocketMQ基础知识的主要内容,如果未能解决你的问题,请参考以下文章