RocketMQ架构原理及名词概念(三)

这节主要讲述RocketMQ的整体架构,和常用术语解释。当我们接触一个新东西的时候,一定要知道他的原理,只有知道原理之后,才会产生问题。只有带着问题去读源码才会事半功倍。

首先盗用官方的一张图片:(官方地址:http://rocketmq.apache.org/)

NameServer:从上图可以清楚的看到NameServer主要干了两件事情,服务发现和路由。如果你知道zookeeper就可以很好理解NameServer了。NameServer就是一个轻量级的zookeeper。多个NameServer可以横向扩展,且它们之间没有任何通信。

Broker:Broker是RocketMQ的核心组成部分,通过轻量级的Topic和队列机制来维护消息存储,Broker支持消息Push和Pull模式。支持千亿级别的消息堆积能力,总之很强大。

Producer:顾名思义生产者,Producer去NameServer获取Broker列表,进行轮询发送消息。每个生产者都有一个ID(编号),多个生产者实例可以共用同一个ID。同一个ID下所有实例组成一个生产者集群。

Consumer:顾名思义消费者,Consumer去NameServer获取Broker列表,进行消息消费,支持Push和Pull两种模式。每个订阅者也有一个ID(编号),多个消费者实例可以共用同一个ID。同一个ID下所有实例组成一个消费者集群。

源码模块说明(RokcetMQ版本4.3.1):

rocketmq-broker:服务端,接受消息,存储消息,consumer拉取消息

rocketmq-client:消息发送和接收,包含consumer和producer

rocketmq-common:通用的枚举、基类方法、或者数据结构,包名有admin、consumer、filter、hook、message

rocketmq-distribution:脚本、配置模块,RocketMQ编译时,bin目录,benchmark目录,conf目录都是从这个模块编译输出的

rocketmq-example:示例模块

rocketmq-filter:消息过滤器

rocketmq-logappender:日志

rocketmq-logging:日志

rocketmq-namesrv:NameServer,类似服务注册中心,broker在这里注册,consumer和producer在这里找到broker地址

rocketmq-openmessaging:RocketMQ支持openmessaging,详见:http://openmessaging.cloud

rocketmq-remoting:使用netty的客户端、服务端,使用fastjson序列化,自定义二进制协议

rocketmq-srvutil:只有一个ServerUtil类,只提供Server程序依赖,尽可能减少客户端依赖

rocketmq-store:消息存储,索引,consumerLog,commitLog等

rocketmq-tools:命令行工具

原文地址:https://www.cnblogs.com/shileibrave/p/9883817.html

时间: 2024-10-30 20:21:20

RocketMQ架构原理及名词概念(三)的相关文章

消息中间件-技术专区-RocketMQ架构原理

RocketMQ是阿里开源的分布式消息中间件,跟其它中间件相比,RocketMQ的特点是纯JAVA实现:集群和HA实现相对简单:在发生宕机和其它故障时消息丢失率更低. 一.RocketMQ专业术语 Producer(生产者) 消息生产者,位于用户的进程内,Producer通过NameServer获取所有Broker的路由信息,根据负载均衡策略选择将消息发到哪个Broker,然后调用Broker接口提交消息. Producer Group 生产者组,简单来说就是多个发送同一类消息的生产者称之为一个

Hbase的架构原理、核心概念

1.Hbase的表.行.列.列族 2.核心组件: Table和region Table在行的方向上分割为多个HRegion, 一个region由[startkey,endkey)表示,每个HRegion分散在不同的RegionServer中 client作用: 提供用户操作hbase的接口(shell.java的api接口) zookeeper作用: Zookeeper集群存储-ROOT-表的地址和Master地址(-ROOT-表在0.96.0之后已经被替换) RegionServer主动向Zo

RocketMQ(1)-架构原理

RocketMQ(1)-架构原理 RocketMQ是阿里开源的分布式消息中间件,跟其它中间件相比,RocketMQ的特点是纯JAVA实现:集群和HA实现相对简单:在发生宕机和其它故障时消息丢失率更低. 一.RocketMQ专业术语 先讲专业术语的含义,后面会画流程图来更好的去理解它们. Producer 消息生产者,位于用户的进程内,Producer通过NameServer获取所有Broker的路由信息,根据负载均衡策略选择将消息发到哪个Broker,然后调用Broker接口提交消息. Prod

Kafka架构原理

对于kafka的架构原理我们先提出几个问题? 1.Kafka的topic和分区内部是如何存储的,有什么特点? 2.与传统的消息系统相比,Kafka的消费模型有什么优点? 3.Kafka如何实现分布式的数据存储与数据读取? Kafka架构图 1.kafka名词解释 在一套kafka架构中有多个Producer,多个Broker,多个Consumer,每个Producer可以对应多个Topic,每个Consumer只能对应一个ConsumerGroup. 整个Kafka架构对应一个ZK集群,通过ZK

EasyScheduler调度系统的架构原理及实现思路

系统架构设计 在对调度系统架构说明之前,我们先来认识一下调度系统常用的名词 1.名词解释 DAG: 全称Directed Acyclic Graph,简称DAG.工作流中的Task任务以有向无环图的形式组装起来,从入度为零的节点进行拓扑遍历,直到无后继节点为止.举例如下图: 流程定义:通过拖拽任务节点并建立任务节点的关联所形成的可视化DAG 流程实例:流程实例是流程定义的实例化,可以通过手动启动或定时调度生成 任务实例:任务实例是流程定义中任务节点的实例化,标识着具体的任务执行状态 任务类型:

[转帖]Netty架构原理,不怕你看不懂!

Netty架构原理,不怕你看不懂! https://mp.weixin.qq.com/s/UIZL78m105btP2HWFmQmlw 原创: 崔皓 51CTO技术栈 2019-12-06 “ 在分布式系统被广泛应用的今天,服务有可能分布在网络中的各个节点中.因此,服务之间的调用对分布式系统来说,就显得尤为重要. 图片来自 Pexels 对于高性能的 RPC 框架,Netty 作为异步通信框架,几乎成为必备品.例如,Dubbo 框架中通信组件,还有 RocketMQ 中生产者和消费者的通信,都使

【转】.NET/ASP.NET Routing路由(深入解析路由系统架构原理)

阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模型的入口 4.ASP.NET Routing 路由对象模型的内部结构 4.1]UrlRoutingModule 对象内部结构 4.2]RouteBase.Route.RouteCollection.RouteTable 路由核心对象模型 4.3]RouteValueDictionary.RouteData.RequestContext 路由数据对象模型 4.4]IRou

NET/ASP.NET Routing路由(深入解析路由系统架构原理)(转载)

NET/ASP.NET Routing路由(深入解析路由系统架构原理) 阅读目录: 1.开篇介绍 2.ASP.NET Routing 路由对象模型的位置 3.ASP.NET Routing 路由对象模型的入口 4.ASP.NET Routing 路由对象模型的内部结构 4.1UrlRoutingModule 对象内部结构 4.2RouteBase.Route.RouteCollection.RouteTable 路由核心对象模型 4.3RouteValueDictionary.RouteData

以属性为核心驱动的 全领域通用架构设计原理 (简称:属性架构原理)

以属性为核心驱动的全领域通用架构设计原理 (简称:属性架构原理) 联系方式:13547930387 Email:[email protected] 一.个人声明 我,参加工作也有5年多了,是一名普通的不能在普通的程序员,一直在使用公司自己的产品进行开发,因此技术比较菜,此设计完全是按照自己天真的想法而设计的,如果有不合理或很搞笑的地方,请轻拍,由衷的希望大家能提出宝贵的意见: 根据此设计原理我也做了一个简单的(demo)架构来支撑和验证此理论的可行性,由于技术功底不太好,有不合理之处请大家谅解,