RocketMQ
文章平均质量分 74
流浪大人
这个作者很懒,什么都没留下…
展开
-
二、消息的存储
RocketMQ的消息存储在本地文件系统中,这些相关文件默认在当前用户主目录下的store目录中。store目录中主要有以下文件夹: commitLog:存放commitlog文件,消息是写在commitlog文件中的 checkpoint:存储commitLog,consumequeue,index文件的最后刷盘时间戳 abort:该文件在broker启动后会自动创建,正常关闭broker,该文件会自动消失。如若在没有启动broker的情况下发现该文件存在,说明之前的broker关闭是非正常关闭的原创 2022-02-25 16:55:22 · 588 阅读 · 0 评论 -
一、消息的生产
消息的生产过程 Producer将消息写入到broker的某个Queue中,经历了一下几个过程: Producer发出消息之前,会先向NameServer发出获取Topic的路由消息请求 NameServer返回该Topic的路由表及broker列表 Producer根据代码中指定的Queue选择策略,从Queue列表中选出一个队列,用于后续存储消息 Producer对消息做一些特殊处理,例如:消息本身超过4M,则对其进行压缩 Producer向选择出的Queue所在的broker发出RPC请求原创 2022-02-25 13:54:44 · 108 阅读 · 0 评论 -
RocketMQ的集群搭建
1、数据复制和刷盘策略 数据复制 复制策略是Broker的Master和Slave之间的数据同步方式,分为同步复制和异步复制 同步复制:消息写入master后,master会等待slave同步数据成功后才向producer返回成功ACK 异步复制:消息写入master后,master会立即向producer返回成功ACK,不会等待slave同步数据成功 刷盘策略 刷盘策略是指消息发送到broker内存后消息持久化到磁盘的方式(也叫做落盘),分为同步刷盘和异步刷盘 同步刷盘:当消息持.原创 2022-02-24 17:30:14 · 425 阅读 · 0 评论 -
RocketMQ的工作流程(简略版)
工作流程: 1、启动NameServer,NameServer启动后开始监听端口,等待broker,producer,consumer连接 2、启动broker时,broker会和所有的NameServer建立并保持长链接,然后每隔30s向NameServer定时发送心跳包 3、发送消息前,可以先创建Topic,创建Topic时需要指定该topic要存储在哪些broker上,同时也会将topic和broker的关系写入到NameServer,不过这步并不...原创 2022-02-24 16:14:28 · 3175 阅读 · 0 评论 -
RocketMQ的各个角色
broker broker面向producer和consumer接受和发送消息 向nameserver提供自己的消息 是消息中间件的消息存储,转发的服务器 路由注册:每个broker节点,在启动时都会遍历nameserver列表,与每个nameserver建立长链接,注册自己的信息(例如:brokerId,broker名称,broker地址,所属集群名等),之后每隔30s发送一次心跳,NameServer接收到心跳后会更新时间戳。 broker集群 broker...原创 2022-02-24 14:48:44 · 1464 阅读 · 0 评论