JAVA全系列 教程
3762个小节阅读:7095k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
作用:修改或创建一个Topic
命令:mqadmin updateTopic -b | -c [-h] [-n ] [-o ] [-p ] [-r ] [-s ] -t [-u ] [-w ]
参数:
- -n: name server地址列表
- -c: cluster 名称,表示topic 建在该集群
- -t: 设置topic名称
- -h: 打印help信息
- -o: 设置topic是否为有序的 取值:true、false(默认)
- -p: 设置topic的权限
示例:
xxxxxxxxxx
mqadmin updateTopic -n localhost:9876 -c DefaultCluster -t testtopic
作用:从broker和nameserver删除topic
命令:mqadmin deleteTopic -c [-h] [-n ] -t
参数:
- -n: name server地址列表
- -c: cluster 名称,表示topic 建在该集群
- -t: 设置topic名称
- -h: 打印help信息
示例:
xxxxxxxxxx
mqadmin deleteTopic -n localhost:9876 -c DefaultCluster -t testtopic
作用:从nameserver列出所有topic
命令:mqadmin topicList [-c] [-h] [-n ]
参数:
- -n: name server地址列表
- -c: cluster 名称,表示topic 建在该集群
- -h: 打印help信息
示例:
xxxxxxxxxx
mqadmin topicList -n localhost:9876
作用:检查topic的状态信息
命令:mqadmin topicStatus [-h] [-n ] -t
参数:
- -n: name server地址列表
- -c: cluster 名称,表示topic 建在该集群
- -t: 设置topic名称
- -h: 打印help信息
示例
xxxxxxxxxx
mqadmin topicStatus -n localhost:9876 -t testtopic
作用:清理未使用的topic
命令:mqadmin cleanUnusedTopic [-b ] [-c ] [-h] [-n ]
参数:
- -n: name server地址列表
- -b: broker地址
- -c: 集群名称
- -h: 打印help信息
关闭namesrv和broker服务
xxxxxxxxxx
mqshutdown namesrv
mqshutdown broker
创建itbaizhan-rocketmq工程
添加依赖
在pom.xml文件中添加依赖
xxxxxxxxxx
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
xxxxxxxxxx
spring:
application:
# 应用名字
name: springboot_rocketmq_producer
xxxxxxxxxx
package com.itbaizhan.sendmessage;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.junit.Test;
import java.nio.charset.StandardCharsets;
import java.util.List;
/**
* 1、发送普通消息
* 普通消息,也叫并发消息,是发送效率最高、使用场景最多的一类消息。
*/
@Slf4j
public class SimpleTest {
@Test
public void producer() throws MQClientException, MQBrokerException, RemotingException, InterruptedException {
DefaultMQProducer producer = new DefaultMQProducer("SyncProducer");
producer.setNamesrvAddr("192.168.47.100:9876");
producer.start();
for (int i = 0; i < 10; i++) {
Message message = new Message("TestTopic", "Tags", (i + "_syncProducer").getBytes(StandardCharsets.UTF_8));
SendResult send = producer.send(message);
System.out.println(i + "消息发送成功:" + send);
}
producer.shutdown();
}
@Test
public void consumer() throws MQClientException, InterruptedException {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("simpleconsmer");
consumer.setNamesrvAddr("192.168.47.100:9876");
consumer.subscribe("TestTopic","*");
consumer.setMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list, ConsumeConcurrentlyContext consumeConcurrentlyContext) {
list.forEach( n -> {
System.out.println("消费成功" + n);
});
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
consumer.start();
Thread.sleep(Long.MAX_VALUE);
}
}