rocketmq-linux下安装rocketmq

linux下安装rocketmq

windows上安装了rocketmq,但是用java怎么都发不出消息,好吧,放弃了windows平台…

下载

下载并解压:


wget http://mirror.bit.edu.cn/apache/rocketmq/4.6.0/rocketmq-all-4.6.0-bin-release.zip

设置环境

vi /etc/profile

export ROCKETMQ_HOME=/opt/softinstall/rocketmq
export PATH=$PATH:$ROCKETMQ_HOME/bin

# 生效
source /etc/profile

# 关闭防火墙
sudo systemctl stop firewalld

修改broker.conf配置文件

增加两行:


namesrvAddr=192.168.100.1xx:9876
brokerIP1=192.168.100.1xx

启动namesrv

nohup sh bin/mqnamesrv >> namesrv.log &
tail -f ~/logs/rocketmqlogs/namesrv.log


# namesrv.log 下面表示成功
The Name Server boot success. serializeType=JSON

启动broker

nohup sh bin/mqbroker  -c conf/broker.conf >> borker.log &
tail -f ~/logs/rocketmqlogs/broker.log

# broker.log 下面就成功了
The broker[broker-a, 192.168.100.1xx:10911] boot success. 
		serializeType=JSON and name server is 192.168.100.1xx:9876

举个例子

依赖

  // client版本要和rocketmq版本一致 
 <dependency>
    <groupId>org.apache.rocketmq</groupId>
     <artifactId>rocketmq-client</artifactId>
     <version>4.6.0</version>
   </dependency>

producer:

public class Producer {

	private static void  main(String[] args) throws Exception {
		// my-group不存在,就需要创建
		DefaultMQProducer producer = new DefaultMQProducer("my-group");
		producer.setNamesrvAddr("192.168.100.1xx:9876");
		producer.setVipChannelEnabled(false);
		producer.setCreateTopicKey("AUTO_CREATE_TOPIC_KEY");
		producer.start();
		for (int i = 0; i < 128; i++) {
			String msg = "Message: hello rocket_" + i;
			Message message = new Message("my-topic", "my-tag", msg.getBytes());
			producer.send(message);
		}
		System.out.println("message send...");
		producer.shutdown();
	}
}

consumer:

public class Consumer {


	public static void main(String[] args) throws MQClientException {
		DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("my-group");
		consumer.setNamesrvAddr("192.168.100.1xx:9876");
		consumer.subscribe("my-topic","my-tag");
		consumer.registerMessageListener(new MessageListenerConcurrently() {
			@Override
			public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list, 
						ConsumeConcurrentlyContext consumeConcurrentlyContext) {
				for (MessageExt messageExt : list) {

					System.out.println(new String(messageExt.getBody()));
				}
				return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
			}
		});
		consumer.start();


	}
}

发布了76 篇原创文章 · 获赞 66 · 访问量 51万+

猜你喜欢

转载自blog.csdn.net/u013887008/article/details/104032383