zl程序教程

您现在的位置是:首页 >  其他

当前栏目

RocketMQ——初识RocketMQ详解编程语言

编程语言 详解 初识 rocketmq
2023-06-13 09:11:53 时间

下图是从官网摘过来的RocketMQ架构图
在这里插入图片描述

RocketMQ架构分为四个部分:NameServer,Broker,Producer,Consumer。其中每一部分都可以水平扩展以避免单点故障。

NameServer:NameServer集群的每一个节点都会记录完整的路由信息,提供可靠的读写服务,并支持存储扩展。NameServer负责管理以下两个部分:

Broker Management:Broker集群的启动需要向NameServer注册,NameServer与Broker会建立心跳连接,随时检查一个Broker是否存活 Routing Management:NameServer集群的每一个节点都会记录整个Broker集群完整的路由信息,与客户端(客户端指Producer和Consumer,下文同义)查询的queue信息

客户端可能需要从NameServer查询相关的路由信息,但是客户端怎么知道NameServer的地址?有以下四种方式进行配置:

在代码中使用如producer.setNamesrvAddr("ip:port")此类代码 在配置中配置rocketmq.namesrv.addr 配置环境变量NAMESRV_ADDR 直接使用HTTP Endpoint

如果以上四种方式都使用了,会有一个生效优先级:
编程方式 配置 环境变量 HTTP Endpoint

Broker:RocketMQ的Broker使用轻量级的Topic和Queue存储消息,并支持容错机制,也就是会备份消息。Broker还提供灾难恢复,统计信息,警报机制。

在这里插入图片描述
以上是Broker的模块图,其中包括:

Remoting Module:这是Broker的入口,处理来自客户端的请求 Client Manager:管理客户端,并维持消费者的订阅信息 Store Service:提供一组API存储或查询物理磁盘上的信息 HA Service:处理主备Broker之间的数据同步 Index Service:按指定的key为消息生成索引,以提供快速的消息查询

Producer:Producer集群向Broker集群发送消息时,会使用多种的负载均衡机制,以支持fast failure和低延迟

Consumer:Consumer也支持集群部署,同ActiveMQ一样支持消息广播。RocketMQ还支持实时消息订阅机制

最后放上来自官网的RocketMQ,ActiveMQ,Kafka对比图以供参考
在这里插入图片描述

20589.html

cxml