安装
broker默认端口号10911
先在node1上操作:
cd /bin
☆新开一个标签页2☆
cd /opt/rocketmq-4.9.2/bin
vi mqbroker
vi runbroker.sh
使其值少于4G 注意:我们这是测试环境 生产不要这么玩!
再次执行,正常运行 启动broker
☆新开一个标签页3☆
将节点1的rocketmq包发送到节点2上
再在node2上操作
cd /opt/rocketmq-4.7.2/bin
☆新开一个node2标签页☆
cd /opt/rocketmq-4.7.2/bin
将broker注册到node1的nameserver上
返回node1的标签页3
cd ~
默认有两个目录logs、store 生产按照要求来
测试连接
public class SimpleRocketMQ {
@Test
public void producer() throws MQClientException, MQBrokerException, RemotingException, InterruptedException {
DefaultMQProducer producer = new DefaultMQProducer("ooxx");
producer.setNamesrvAddr("192.168.150.11:9876");
producer.start();
for (int i = 0; i< 10; i++){
Message message = new Message();
message.setTopic("wula");
message.setTags("Tags");
message.setBody(("ooxx" + i).getBytes());
message.setWaitStoreMsgOK(true);
// option 1
SendResult result = producer.send(message);
// option 2
producer.send(message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
}
@Override
public void onException(Throwable throwable) {
}
});
// option 3
producer.sendOneway(message); // 光发
MessageQueue messageQueue = new MessageQueue("wula", "node01", 0);
SendResult send = producer.send(message, messageQueue);
System.out.println(send);
}
}
@Test
public void consumerPull() throws MQClientException, IOException {
DefaultLitePullConsumer consumer = new DefaultLitePullConsumer("ooxx");
consumer.setNamesrvAddr("192.168.150.11:9876");
consumer.start();
Collection<MessageQueue> mqs = consumer.fetchMessageQueues("wula");
System.out.println("queues:");
mqs.forEach(messageQueue -> System.out.println(messageQueue));
System.out.println("poll...");
// consumer.assign(mqs);
Collection<MessageQueue> queue = new ArrayList<>();
queue.add(new MessageQueue("wula", "node01", 0));
consumer.assign(queue);
List<MessageExt> poll = consumer.poll();
poll.forEach(messageExt -> System.out.println(messageExt));
System.in.read();
}
@Test
public void consumerPush() throws Exception {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("consumer_ox");
consumer.setNamesrvAddr("192.168.150.11:9876");
consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
consumer.subscribe("wula", "*");
consumer.registerMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list, ConsumeConcurrentlyContext consumeConcurrentlyContext) {
list.forEach(messageExt -> {
byte[] body = messageExt.getBody();
String message = new String(body);
System.out.println(message);
});
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
consumer.start();
// 自测 加个 无线循环或阻塞
}
@Test
public void admin() throws MQClientException, RemotingException, InterruptedException {
DefaultMQAdminExt admin = new DefaultMQAdminExt();
admin.setNamesrvAddr("192.168.150.11:9876");
admin.start();
TopicList topicList = admin.fetchAllTopicList();
Set<String> sets = topicList.getTopicList();
sets.forEach(s -> System.out.println(s));
System.out.println("topic route | info");
TopicRouteData wula = admin.examineTopicRouteInfo("wula");
System.out.println(wula);
}
}
观察
node1的标签页3
cd /opt/rocketmq-4.9.2/bin
./mqadmin