RocketMQ
启动方式
启动NameServer
cd /usr/loacl/rocketMQ/rocketMQ
nohup sh bin/mqnamesrv &
查看日志
tail -f ~/logs/rocketmqlogs/namesrv.log
启动Broker
cd /usr/loacl/rocketMQ/rocketMQ
nohup sh bin/mqbroker -n localhost:9876 &
查看日志
tail -f ~/logs/rocketmqlogs/broker.log
关闭RocketMQ
sh bin/mqshutdown namesrv
sh bin/mqshutdown broker
#nameserver
192.168.198.164 rocketmq-nameserver1
192.168.198.177 rocketmq-nameserver2
#broker
192.168.198.164 rocketmq-master1
192.168.198.164 rocketmq-slave2
192.168.198.177 rocketmq-master2
192.168.198.177 rocketmq-slave1
集群启动RocketMQ
分别启动NameServer,跟单机启动一样
一共两台机器
在第一台机器启动master1 和 slaver2
在第二台机器启动master2 和 slave1
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a.properties &
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b-s.properties &
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b.properties &
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a-s.properties &
发送消息
发送同步消息
1.创建Producer
2.指定NameServer地址
3.启动Producer
4.创建消息
5.发送消息
6.关闭Producer
发送异步消息
1.创建Producer
2.指定NameServer地址
3.启动Producer
4.创建消息,设置回调函数
5.发送消息
6.关闭Producer
发送单项消息
和前两个一样,只是没有返回值,一般用于不需要知道是否发送成功的场景
消费消息 消息消费者
1.创建消费者
2.设置NameServer地址
3.订阅主题和Tag
4.设置回调函数,在回调函数中处理消息
5.启动消费者
消费者消费模式
负载均衡和广播模式,默认为负载均衡,即消息不会被其他消费者重复消费
广播模式:每个消费者都有一次消费消息的机会
顺序消息
保证同一个生产者所发送的消息存放在一个队列里,保证顺序。代码里体现为
producer.send(msg,new MessageQueueSelector(){
},orderId)
//通过orderId,在方法里将orderId一样的放到同一个队列
//消费时
consumer.registerMessageListenr(new MessageListenerOrderly(){
})
//确保消费顺序
消息过滤
Tag过滤
在创建消费者时,通过订阅不同的tag1来消费不同的消息
consumer.subscribe("topic","tag1");
SQL过滤
编写sql语句来过滤消息,在生产发送消息时,可以指定message.putUserProperty();设置属性
在消费时编写sql语句,eg: consumer.subscribe(“topic”,MessageSelector(“attribute >= 5”));