0
点赞
收藏
分享

微信扫一扫

RocketMQ扫盲(一)


最近几年,对MQ的使用很频繁,但从未对其进行深入研究,最近有幸接触到。因此记录下。

什么是MQ

      MessageQueue消息队列简称为MQ,队列大家都不陌生,一般都是先进先出(FIFO)有先后顺序。常见的MQ有ActiveMQ、RabbitMQ、Kafka、RocketMQ。这里我们主要介绍RocketMQ。

MQ的用处

异步、削峰、解耦。MQ就是用来做这个的。

RocketMQ的四大金刚及架构

     

RocketMQ扫盲(一)_回调函数

RocketMQ的路由NameServer

NameServer是一个无状态节点,可集群部署,节点之间无任何信息同步。主要功能是为整个MQ集群提供服务协调与治理,具体就是记录维护Topic、Broker的信息,及监控Broker的运行状态。

NameServer不会有频繁的读写,所以性能开销非常小,稳定性很高

RocketMQ扫盲(一)_发送消息_02

RocketMQ的生产(producer)

消息发送方式有三种:

      同步发送:发送者向MQ发送的消息的时候,同步等待,直到服务器返回结果

      异步发送:发送者向MQ发送消息时,指定成功后的回调函数,不会等待服务器返回结果。

      单向发送:发送者向MQ发送消息时,不等待结果直接返回,也不注册回调函数。

消息发送流程:

      1、验证消息长度:确保运行状态下,消息符合相应规范,默认消息内容不超过4M。

      2、查找主题(Topic)的主题信息:通过topic,在NameServer中查找对应的brokerAddr信息。向broker循环发送。

      3、选择消息队列,可以选择是否开启broker延迟机制。

      4、发送消息。

Topic创建

自动创建

RocketMQ扫盲(一)_服务器_03

//手动创建命令
./mqadmin updateTopic

手动创建

RocketMQ扫盲(一)_服务器_04

//自动创建
需要把autoCreateTopicEnable=true

单机和集群

        当用集群模式去创建topic时,集群里面每个broker的queue的数量相同,当用单个broker模式去创建topic时,每个broker的 queue数量可以不一致。

 


举报

相关推荐

0 条评论