springboot 集成Rocket MQ

1.导入依赖

<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-spring-boot-starter</artifactId>
    <version>2.0.2</version>
</dependency>

2.配置文件

rocketmq:
  name-server: 127.0.0.1:9876
  producer:
    group: ${spring.application.name}

3.生产者

@Autowired
private RocketMQTemplate rocketMQTemplate;


/**
 * 申请加入企业请求发送
 *
 * @param userJoinCompanyDTO
 */
@Transactional
public void applyJoinCompany(UserJoinCompanyDTO userJoinCompanyDTO) {
    ....省略代码
    log.info("{},申请加入企业。{}", userJoinCompanyDTO.getUsername(), notifyMessage.toString());
    rocketMQTemplate.convertAndSend(USER_TOPIC_NAME + ":" + USER_APPLY_TAGS, notifyMessage);
}

3.消费者  需要在配置文件中添加nameserver  导入启动依赖

package com.itheima.notify.listener;

import com.itheima.common.constants.RocketMQConstants;
import com.itheima.notify.dto.NotifyMessage;
import com.itheima.notify.service.NotifyMessageService;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import static com.itheima.common.constants.RocketMQConstants.CONSUMER.NOTIFY_MSG_CONSUMER;

/**
 * 推送消息监听器:当监听到话题对应队列中有消息,获取到消息后将消息推送给指定手机设备
 * @author: itheima
 * @create: 2021-11-05 10:16
 */
@Component
@RocketMQMessageListener(
        consumerGroup = NOTIFY_MSG_CONSUMER,
        topic = RocketMQConstants.TOPIC.PUSH_TOPIC_NAME, //消息一级分类
        selectorExpression = "*"  //消息二级分类
)
public class NotifyMsgListener implements RocketMQListener<NotifyMessage> {


    @Autowired
    private NotifyMessageService notifyMessageService;



    /**
     * 1.处理接收到的推送消息
     * @param message
     */
    @Override
    public void onMessage(NotifyMessage message) {
        notifyMessageService.sendPushMsgAndStore(message);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于使用 Spring Boot 集成 RocketMQ,最优解决方案是使用 Alibaba 提供的 RocketMQ-SpringBoot-Starter。 以下是一个简单的案例代码: 1. 在 pom.xml 中添加以下依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency> ``` 2. 在 application.yml 中配置 RocketMQ: ```yaml spring: rocketmq: name-server: ${rocketmq.name-server} producer: group: ${rocketmq.producer.group} consumer: group: ${rocketmq.consumer.group} topic: ${rocketmq.consumer.topic} tag: ${rocketmq.consumer.tag} ``` 3. 创建消息生产者: ```java @Component public class RocketMQProducer { @Autowired private RocketMQTemplate rocketMQTemplate; public void sendMessage(String message) { rocketMQTemplate.convertAndSend("topic", message); } } ``` 4. 创建消息消费者: ```java @Component @RocketMQMessageListener(topic = "topic", consumerGroup = "consumer-group") public class RocketMQConsumer implements RocketMQListener<String> { @Override public void onMessage(String message) { // 处理消息 } } ``` 注意事项: - 配置文件中的 `${rocketmq.name-server}`、`${rocketmq.producer.group}`、`${rocketmq.consumer.group}`、`${rocketmq.consumer.topic}`、`${rocketmq.consumer.tag}` 需要根据实际情况进行替换。 - 在生产者中,使用 `rocketMQTemplate.convertAndSend("topic", message)` 发送消息,其中 `"topic"` 为消息主题,`message` 为消息内容。 - 在消费者中,使用 `@RocketMQMessageListener` 注解指定消息主题和消费者组,实现 `RocketMQListener` 接口处理消息即可。 - 在 RocketMQ 中,消息主题需要先创建才能发送和消费消息。创建主题可以使用 RocketMQ 控制台或者使用消息生产者发送一条消息,RocketMQ 会自动创建该主题。 以上代码可以长时间承受较大数据量,且易于维护和健壮性较强。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值