RocketMQ扫盲(一)

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

什么是MQ

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

MQ的用处

     近几年互联网的发展,促使业务架构朝着高并发、高可用、分布式的方向演进,在此过程中系统的架构越来越复杂,但对于性能、响应、用户体验越来越高,复杂结构与高标准要求,促使需要对业务进行异步、削峰、解耦。MQ就是用来做这个的。

RocketMQ的四大金刚及架构

     

RocketMQ的路由NameServer

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

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

RocketMQ的生产(producer)

消息发送方式有三种:

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

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

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

消息发送流程:

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

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

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

      4、发送消息。

Topic创建

自动创建

640?wx_fmt=png

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

手动创建

640?wx_fmt=png

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

单机和集群

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

 

参考:https://blog.csdn.net/East_MrChiu/article/details/88677416

           https://blog.csdn.net/zchdjb/article/details/90795265

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值