首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RocketMQ篇1:生产环境下的简单配置和使用

消息队列优势

削峰填谷:主要解决瞬时写压力大于应用服务能力导致消息丢失、系统崩溃

系统解耦:解决不同重要程度、不同能力级别系统之间的依赖,避免一挂全挂的情况

提升性能:当存在一对多调用时,可以发一条消息给mq,让各个系统自主去消费

蓄流压测:线上环境一些系统/分支不好压测, 可以通过堆积一定的数据在放开压测

RocketMQ各部分角色介绍

1、NameServer:一个几乎无状态节点,可集群部署,节点之间无任何信息同步。

2、Broker:分为Master和Slave,一个Master对应多个Slave,但一个Slave只能对应一个Master,Master与Slave对应关系通过指定相同的Broker Name,不同的Broker Id来定义。BrokerId为0表示Master,非0表示Slave。

每个Borker与Name Server集群中的所有节点建立长连接,每30s注册Topic信息到所有的Namer Server。Name Server每10s扫描所有存货Broker的连接,如果Name Server超过2分钟没有收到心跳,则Name Server断开与Broker的连接。

3、Producer:Producer与Name Server集群中的随机一个节点建立长连接,定期从Name Server取Topic路由信息,并向提供Topic服务的Master建立长连接,且定时向Master发送心跳。Producer完全无状态。

4、Consumer:Consumer与Name Server集群中的随机一个节点建立长连接,定期从Name Server取Topic路由信息,并向提供Topic服务的Master、Slave建立长连接,且定时向Master、Slave发送心跳。

5、Topic:不同类型的消息存放在不同的Topic中。

6、Message Queue:Topic可以设置一个或多个Message Queue,Message Queue类似分区或Partition。有多个Message Queue后,消息可以并行地向各个Message Queue发送,消费者也可以并性地从多个Message Queue读取消息消费

多机集群配置和部署

1、启动NameServer:nohup sh bin/mqnamesrv &

2、启动Broker:nohup sh bin/mqbroker -c config_file &

3、启动RocketMQ-console:nohup sh bin/rocketmq-console &

1、namesrvAddr:NameServer的地址,可配置多个用;分开。

2、brokerClusterName:Cluster的地址,如果集群机器数多的话,可以分为多个Cluster,每个Cluster供一个业务群使用。

3、brokerName:Broker的名称,Master和Slave通过使用相同的Broker名称来表明相互关系,以说明某个Slave是哪个Master的Slave。

4、borkerId:一个Master Borker可以有多个Slave,0表示Master,非0表示不同Slave的ID。

5、fileReserevedTime:在磁盘上保存消息的时长,单位是小时,自动删除超时的消息。

6、deleteWhen:与fileReservedTime参数呼应,表明在几点做信息删除动作。

7、brokerRole:分为3中,SYNC_MASTER、ASYNC_MASTER、SLAVE。SYNC和ASYNC表示Master和Slave之间同步消息的机制,SYNC表示当Slave和Master消息同步完成后,再返回发送成功的状态。

8、flushDiskType:表示刷盘策略,分为SYNC_FLUSH和ASYNC_FLUSH,代表同步刷盘和异步刷盘。同步刷盘情况下,消息真正写入磁盘后再返回成功状态;异步刷盘情况下,消息写入page_cache后就返回成功状态。

9、listenPort:Broker监听的端口号,如果一台机器上启动了多个Broker,要设置不同的端口号。

10、storePathRootDir:存储消息和一些配置信息的根目录。

发送/接受消息实例

发送

创建一个DefaultMQProducer对象,设置好GroupName和NameServer地址后启动。

然后把待发送的消息拼装成Message对象,使用Producer发送。

接受

常用管理命令

1、创建/修改Topic:updateTopic

2、删除Topic:deleteTopic

3、创建/修改订阅组:updateSubGroup

4、删除订阅组:deleteSubGroup

5、更新Broker配置:updateBrokerConfig

6、更新Topic的读写权限:updateTopicPerm

7、查看Topic的路由信息:TopicRoute

8、查看Topic列表信息:TopicList

9、查看Topic统计信息:TopicStats

10、根据时间查询消息:printMsg

11、根据消息ID查询消息:queryMsgById

12、查看集群信息:clusterList

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200510A0JYCZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券