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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐观男孩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值