做网站 宁波,装修案例分析,投资建设网站,互联网创业项目app文章目录 1.调整MQ的配置1.进入bin目录2.关闭broker和namesrv3.查看进程确认关闭4.编辑配置文件broker.conf#xff0c;配置brokerIP15.开放端口109116.重新启动1.进入bin目录2.启动mqnamesrv和mqbroker1.启动 NameServer 并将输出重定向到 mqnamesrv.log2.**启动 Broker 并将… 文章目录 1.调整MQ的配置1.进入bin目录2.关闭broker和namesrv3.查看进程确认关闭4.编辑配置文件broker.conf配置brokerIP15.开放端口109116.重新启动1.进入bin目录2.启动mqnamesrv和mqbroker1.启动 NameServer 并将输出重定向到 mqnamesrv.log2.**启动 Broker 并将输出重定向到** **mqbroker.log**3.**实时监控 NameServer 的日志文件**4.**实时监控 Broker 的日志文件**5.查看进程 2.项目集成MQ1.domain引入mq依赖2.sun-club-application-mq 引入domain依赖用于消费mq3.sun-club-starter 引入mq层4.application.yml 配置mq5.SubjectController.java1.依赖注入 RocketMQTemplate2.编写controller作为消息生产者 6.TestConsumer.java 测试消费5.测试 3.点赞业务优化为MQ处理1.SubjectLikedMessage.java 点赞消息实体2.sun-club-domain 同步点赞数据1.SubjectLikedDomainService.java2.SubjectLikedDomainServiceImpl.java3.add方法逻辑修改4.测试 1.调整MQ的配置
1.进入bin目录
cd /usr/local/soft/rocketmq-all-4.8.0-bin-release/bin2.关闭broker和namesrv
sh mqshutdown broker sh mqshutdown namesrv3.查看进程确认关闭
ps -ef | grep NamesrvStartup ps -ef | grep BrokerStartup4.编辑配置文件broker.conf配置brokerIP1
vim /usr/local/soft/rocketmq-all-4.8.0-bin-release/conf/broker.conf# NameServer 地址开端口
namesrvAddr# brokerIP1 指定了 Broker 对外提供服务的 IP 地址
brokerIP1# listenPort 指定了 Broker 监听客户端连接的端口开端口
listenPort10911# 当这个选项设置为 true 时如果客户端尝试向一个不存在的主题发送消息Broker 会自动创建这个主题
autoCreateTopicEnabletrue5.开放端口10911
systemctl start firewalld firewall-cmd --permanent --add-port10911/tcp firewall-cmd --reload firewall-cmd --query-port10911/tcp6.重新启动
1.进入bin目录
cd /usr/local/soft/rocketmq-all-4.8.0-bin-release/bin2.启动mqnamesrv和mqbroker
1.启动 NameServer 并将输出重定向到 mqnamesrv.log
nohup sh mqnamesrv mqnamesrv.log 21 2.启动 Broker 并将输出重定向到 mqbroker.log
nohup sh mqbroker -c ../conf/broker.conf mqbroker.log 21 3.实时监控 NameServer 的日志文件
tail -f mqnamesrv.log 4.实时监控 Broker 的日志文件
tail -f mqbroker.log 5.查看进程
ps -ef | grep NamesrvStartup ps -ef | grep BrokerStartup2.项目集成MQ
1.domain引入mq依赖 !-- rocketmq --dependencygroupIdorg.apache.rocketmq/groupIdartifactIdrocketmq-spring-boot-starter/artifactIdversion2.1.1/version/dependency2.sun-club-application-mq 引入domain依赖用于消费mq !-- 引入domain层 --dependencygroupIdcom.sun.club/groupIdartifactIdsun-club-domain/artifactIdversion1.0-SNAPSHOT/version/dependency3.sun-club-starter 引入mq层 !-- 引入mq层 --dependencygroupIdcom.sun.club/groupIdartifactIdsun-club-application-mq/artifactIdversion1.0-SNAPSHOT/version/dependency4.application.yml 配置mq
# mq配置
rocketmq:name-server: # 作用是服务注册和发现会自动发现brokerproducer:group: test-group 5.SubjectController.java
1.依赖注入 RocketMQTemplate Resourceprivate RocketMQTemplate rocketMQTemplate;2.编写controller作为消息生产者 /*** 测试mq发送* return*/GetMapping(/pushMessage)public ResultBoolean pushMessage(Param(id) int id) {rocketMQTemplate.convertAndSend(first-topic, hello id);return Result.ok();}6.TestConsumer.java 测试消费
package com.sunxiansheng.subject.application.mq;import com.sun.media.jfxmedia.logging.Logger;
import groovy.util.logging.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;/*** Description:* Author sun* Create 2024/7/12 13:24* Version 1.0*/
Component
// topic主题就是生产者那里指定的主题
// consumerGroup消费组在application.yml文件中配置的
// RocketMQListenerString这里的泛型就是消息的类型
RocketMQMessageListener(topic first-topic, consumerGroup test-group)
Slf4j
public class TestConsumer implements RocketMQListenerString {private static final org.slf4j.Logger log LoggerFactory.getLogger(TestConsumer.class);/*** 对消息进行消费* param s*/Overridepublic void onMessage(String s) {log.info(接受到消息了{}, s);}}5.测试 3.点赞业务优化为MQ处理
1.SubjectLikedMessage.java 点赞消息实体
package com.sunxiansheng.subject.domain.entity;import lombok.Data;
import lombok.experimental.Accessors;import java.io.Serializable;/*** 题目点赞消息*/
Data
Accessors(chain true) // 支持链式调用
public class SubjectLikedMessage implements Serializable {/*** 题目id*/private Long subjectId;/*** 点赞人id*/private String likeUserId;/*** 点赞状态 1点赞 0不点赞*/private Integer status;}2.sun-club-domain 同步点赞数据
1.SubjectLikedDomainService.java /*** MQ同步点赞数据* param subjectLikedBO*/void syncLikedByMsg(SubjectLikedBO subjectLikedBO);2.SubjectLikedDomainServiceImpl.java Overridepublic void syncLikedByMsg(SubjectLikedBO subjectLikedBO) {SubjectLiked subjectLiked new SubjectLiked();subjectLiked.setSubjectId(subjectLikedBO.getSubjectId());subjectLiked.setLikeUserId(subjectLikedBO.getLikeUserId());subjectLiked.setStatus(subjectLikedBO.getStatus());subjectLiked.setIsDeleted(IsDeleteFlagEnum.UN_DELETED.getCode());subjectLikedService.insert(subjectLiked);}3.add方法逻辑修改 4.测试