文章目錄
- 1.調(diào)整MQ的配置
- 1.進(jìn)入bin目錄
- 2.關(guān)閉broker和namesrv
- 3.查看進(jìn)程確認(rèn)關(guān)閉
- 4.編輯配置文件broker.conf,配置brokerIP1
- 5.開放端口10911
- 6.重新啟動
- 1.進(jìn)入bin目錄
- 2.啟動mqnamesrv和mqbroker
- 1.啟動 NameServer 并將輸出重定向到 mqnamesrv.log
- 2.**啟動 Broker 并將輸出重定向到** **mqbroker.log**
- 3.**實(shí)時監(jiān)控 NameServer 的日志文件**
- 4.**實(shí)時監(jiān)控 Broker 的日志文件**
- 5.查看進(jìn)程
- 2.項(xiàng)目集成MQ
- 1.domain引入mq依賴
- 2.sun-club-application-mq 引入domain依賴,用于消費(fèi)mq
- 3.sun-club-starter 引入mq層
- 4.application.yml 配置mq
- 5.SubjectController.java
- 1.依賴注入 RocketMQTemplate
- 2.編寫controller,作為消息生產(chǎn)者
- 6.TestConsumer.java 測試消費(fèi)
- 5.測試
- 3.點(diǎn)贊業(yè)務(wù)優(yōu)化為MQ處理
- 1.SubjectLikedMessage.java 點(diǎn)贊消息實(shí)體
- 2.sun-club-domain 同步點(diǎn)贊數(shù)據(jù)
- 1.SubjectLikedDomainService.java
- 2.SubjectLikedDomainServiceImpl.java
- 3.add方法邏輯修改
- 4.測試
1.調(diào)整MQ的配置
1.進(jìn)入bin目錄
cd /usr/local/soft/rocketmq-all-4.8.0-bin-release/bin
2.關(guān)閉broker和namesrv
sh mqshutdown broker && sh mqshutdown namesrv

3.查看進(jìn)程確認(rèn)關(guān)閉
ps -ef | grep NamesrvStartup && ps -ef | grep BrokerStartup

4.編輯配置文件broker.conf,配置brokerIP1
vim /usr/local/soft/rocketmq-all-4.8.0-bin-release/conf/broker.conf
namesrvAddr=
brokerIP1=
listenPort=10911
autoCreateTopicEnable=true
5.開放端口10911
systemctl start firewalld && firewall-cmd --permanent --add-port=10911/tcp && firewall-cmd --reload && firewall-cmd --query-port=10911/tcp

6.重新啟動
1.進(jìn)入bin目錄
cd /usr/local/soft/rocketmq-all-4.8.0-bin-release/bin
2.啟動mqnamesrv和mqbroker
1.啟動 NameServer 并將輸出重定向到 mqnamesrv.log
nohup sh mqnamesrv > mqnamesrv.log 2>&1 &
2.啟動 Broker 并將輸出重定向到 mqbroker.log
nohup sh mqbroker -c ../conf/broker.conf > mqbroker.log 2>&1 &
3.實(shí)時監(jiān)控 NameServer 的日志文件
tail -f mqnamesrv.log &

4.實(shí)時監(jiān)控 Broker 的日志文件
tail -f mqbroker.log &
5.查看進(jìn)程
ps -ef | grep NamesrvStartup && ps -ef | grep BrokerStartup

2.項(xiàng)目集成MQ
1.domain引入mq依賴
<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.1.1</version></dependency>

2.sun-club-application-mq 引入domain依賴,用于消費(fèi)mq
<dependency><groupId>com.sun.club</groupId><artifactId>sun-club-domain</artifactId><version>1.0-SNAPSHOT</version></dependency>

3.sun-club-starter 引入mq層
<dependency><groupId>com.sun.club</groupId><artifactId>sun-club-application-mq</artifactId><version>1.0-SNAPSHOT</version></dependency>

4.application.yml 配置mq
rocketmq:name-server: producer:group: test-group

5.SubjectController.java
1.依賴注入 RocketMQTemplate
@Resourceprivate RocketMQTemplate rocketMQTemplate;
2.編寫controller,作為消息生產(chǎn)者
@GetMapping("/pushMessage")public Result<Boolean> pushMessage(@Param("id") int id) {rocketMQTemplate.convertAndSend("first-topic", "hello " + id);return Result.ok();}

6.TestConsumer.java 測試消費(fèi)
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;
@Component
@RocketMQMessageListener(topic = "first-topic", consumerGroup = "test-group")
@Slf4j
public class TestConsumer implements RocketMQListener<String> {private static final org.slf4j.Logger log = LoggerFactory.getLogger(TestConsumer.class);@Overridepublic void onMessage(String s) {log.info("接受到消息了:{}", s);}}

5.測試


3.點(diǎn)贊業(yè)務(wù)優(yōu)化為MQ處理
1.SubjectLikedMessage.java 點(diǎn)贊消息實(shí)體
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 {private Long subjectId;private String likeUserId;private Integer status;}
2.sun-club-domain 同步點(diǎn)贊數(shù)據(jù)
1.SubjectLikedDomainService.java
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.測試

