1.下载RocketMQ
2.安装部署
-
需要配置jdk环境变量
-
下载完后 :解压后改短点名字直接上传到Linux服务器。
(我放在了/usr/local/rocketmq) -
修改配置文件:/usr/local/rocketmq/conf/broker.conf 中 加入
brokerIP1=192.168.1.101
//你连接Linux的ip地址(云服务器也一样)
- 启动mqnamesrv
cd /usr/local/rocketmq/bin //进入rocketMQ bin目录下
nohup sh mqnamesrv -n 192.168.1.101:9876 >/usr/local/rocketmq/logs/mqnamesrv.log 2>&1 &
//以守护进程启动 日志,异常输出到 logs/mqnamesrv.log
jps//查看是否启动成功
//输出内容有: 15144(Pid)NamesrvStartup 为启动成功
- 启动mqbroker
cd /usr/local/rocketmq/bin //进入rocketMQ bin目录下
nohup sh mqbroker -n 192.168.1.101:9876 -c /usr/local/rocketmq/conf/broker.conf autoCreateTopicEnable=true >/usr/local/rocketmq/logs/broker.log 2>&1 &
//以守护进程启动 日志,异常输出到 logs/broker.log
jps//查看是否启动成功
//输出内容有: 15508 (Pid)BrokerStartup 为启动成功
- 图形化工具
在 RocketMQ 拓展项目(rocketmq-externals) 中,包含了 RocketMQ Console 项目,是 RocketMQ 的图形化管理控制
// 克隆代码
$ git clone https://github.com/apache/rocketmq-externals.git
// 进入 Console 目录
$ cd rocketmq-console
// 项目端口在此修改: src/main/resources/application.properties
$ mvn clean package -Dmaven.test.skip=true //编译打包
//完成后把 target/rocketmq-console-ng-1.0.1.jar 上传到Linux
//我 放到了 /usr/local/rocketmq
//启动
cd /usr/local/rocketmq
nohup java -jar rocketmq-console-ng-1.0.1.jar >>/usr/local/rocketmq/logs/log.out 2>&1 &
//jps 查看多了个 13959 jar 启动成了!
// 访问 ip:8080(默认的端口)查看
- Windows启动 :直接启动 bin下的.cmd就行了
3.程序配置使用
//pom 文件导入
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
//bootstrap.yml 配置文件配置
rocketmq:
// 消费者和生产者都必须指定
name-server: 192.168.1.101:9876
producer:
//生成者必须指定group生产组
group: test-group
//application.properties 配置 .就行了 如:
rocketmq.producer.group=test-group
生产者:
import org.apache.rocketmq.spring.core.RocketMQTemplate;
@Service
public class TestSender {
@Autowired
private RocketMQTemplate rocketMQTemplate;
public void send(String message) {
rocketMQTemplate.convertAndSend("test-topic",message);
}
}
消费者:
import org.apache.rocketmq.spring.core.RocketMQListener;
@Service
@RocketMQMessageListener(topic = "test-topic", consumerGroup = "consumer-group")
public class TestReceiver implements RocketMQListener<String> {
@Override
@Transactional(rollbackFor = Exception.class)
public void onMessage(String message) {
System.out.println("==收到时间"+new Date()+"内容: ==" + message);
}
}