当前位置: 首页 > wzjs >正文

青海省建设厅通报网站手机版谷歌浏览器入口

青海省建设厅通报网站,手机版谷歌浏览器入口,办公室装修甲醛多久散发完,国外做免费网站的1. RocketMQ 简介 RocketMQ 是阿里巴巴开源的一款分布式消息队列,具有高吞吐量、低延迟、可靠性等特点,广泛应用于金融、电商、物联网等领域。 RocketMQ 的核心特性: 高可靠性:支持消息存储、重复消费、失败重试等高可用性&…

1. RocketMQ 简介

RocketMQ 是阿里巴巴开源的一款分布式消息队列,具有高吞吐量、低延迟、可靠性等特点,广泛应用于金融、电商、物联网等领域。

  • RocketMQ 的核心特性:
    • 高可靠性:支持消息存储、重复消费、失败重试等
    • 高可用性:分布式架构,支持主从复制
    • 高性能:高吞吐量、低延迟

2. 引入依赖

首先,在 Spring Boot 项目 中引入 RocketMQ 和 Spring Cloud Alibaba 的依赖。

2.1 配置依赖

pom.xml 中添加以下依赖:

<dependencies><!-- Spring Boot --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- Spring Cloud Alibaba RocketMQ --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-rocketmq</artifactId></dependency><!-- Spring Cloud Alibaba --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba</artifactId></dependency>
</dependencies>

2.2 配置 RocketMQ

application.yml 中配置 RocketMQ 连接信息:

spring:cloud:alibaba:rocketmq:name-server: 127.0.0.1:9876  # RocketMQ NameServer 地址producer:group: my-producer-group   # 生产者组consumer:group: my-consumer-group   # 消费者组

3. 生产者代码实现

3.1 创建消息生产者

我们可以通过注解 @RocketMQMessageListener 来创建 RocketMQ 生产者,消息可以通过 @Value 传递或直接通过 Bean 注入。

import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class RocketMQProducer {@Autowiredprivate RocketMQTemplate rocketMQTemplate;// 发送普通消息public void sendMessage(String topic, String message) {rocketMQTemplate.convertAndSend(topic, message);}
}

3.2 发送消息

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ProducerController {@Autowiredprivate RocketMQProducer rocketMQProducer;@GetMapping("/send")public String sendMessage() {String message = "Hello, RocketMQ!";rocketMQProducer.sendMessage("my-topic", message);return "Message sent: " + message;}
}

访问 http://localhost:8080/send 发送消息,RocketMQ 将开始处理消息。


4. 消费者代码实现

4.1 创建消息消费者

在消费者端,我们需要创建一个消息监听器,利用 @RocketMQMessageListener 注解监听 RocketMQ 消息。

import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.stereotype.Service;@Service
@RocketMQMessageListener(topic = "my-topic", consumerGroup = "my-consumer-group")
public class RocketMQConsumer {@org.springframework.messaging.handler.annotation.MessageMappingpublic void listen(String message) {System.out.println("Received message: " + message);}
}

4.2 消费消息

每次生产者发送的消息,消费者都会通过 listen 方法进行接收。控制台会打印出收到的消息。


5. 顺序消息

RocketMQ 支持顺序消息,可以通过设置 MessageQueueSelector 来保证消息的顺序性。

5.1 发送顺序消息

import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.apache.rocketmq.spring.support.RocketMQMessageConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class OrderProducer {@Autowiredprivate RocketMQTemplate rocketMQTemplate;// 发送顺序消息public void sendOrderedMessage(String topic, String message, int orderId) {rocketMQTemplate.convertAndSend(topic, message, new MessageQueueSelector() {@Overridepublic MessageQueue select(List<MessageQueue> mqs, Message msg, Object arg) {// 根据orderId选择队列return mqs.get(orderId % mqs.size());}}, orderId);}
}

5.2 接收顺序消息

顺序消息的消费逻辑和普通消息相似,只不过要保证顺序消息的消费顺序。


6. 事务消息

RocketMQ 提供了事务消息功能,能够保证消息在分布式事务中的可靠性。我们通过 @RocketMQTransactionListener 来实现。

6.1 配置事务消息

import org.apache.rocketmq.spring.annotation.RocketMQTransactionListener;
import org.apache.rocketmq.spring.core.RocketMQLocalTransaction;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
@RocketMQTransactionListener
public class TransactionProducer {@Autowiredprivate RocketMQTemplate rocketMQTemplate;public void sendTransactionMessage(String topic, String message) {rocketMQTemplate.sendMessageInTransaction(topic, message, null);}public RocketMQLocalTransaction executeLocalTransaction(String message, Object arg) {// 事务操作try {// 业务操作return RocketMQLocalTransaction.SUCCESS;} catch (Exception e) {return RocketMQLocalTransaction.ROLLBACK;}}
}

6.2 事务回查

RocketMQ 支持事务回查机制,如果事务消息发送后没有明确的提交或回滚,RocketMQ 会通过回查接口查询事务状态。


7. Spring Cloud Alibaba 集成

7.1 配置 Spring Cloud RocketMQ

application.yml 配置 Spring Cloud Alibaba 与 RocketMQ 集成。

spring:cloud:alibaba:rocketmq:name-server: 127.0.0.1:9876producer:group: my-producer-groupconsumer:group: my-consumer-group

7.2 集成 OpenFeign 与 RocketMQ

通过 OpenFeign 实现远程服务调用,可以和 RocketMQ 一起工作。例如,将 RocketMQ 生产者集成到一个微服务中,使用 OpenFeign 调用。

@FeignClient("rocketmq-producer-service")
public interface RocketMQFeignClient {@PostMapping("/send")void sendMessage(@RequestBody String message);
}

通过 Feign 客户端发送请求并触发 RocketMQ 生产者的消息发送。


8. 总结

功能总结

功能说明
消息生产使用 RocketMQTemplate 发送消息
消息消费使用 @RocketMQMessageListener 监听消息
顺序消息使用 MessageQueueSelector 保证消息顺序
事务消息使用 RocketMQTransactionListener 保证事务一致性
集成 Spring Cloud结合 Spring Cloud Alibaba RocketMQ 进行分布式消息通信

集成 RocketMQ 的好处

  • 提高系统解耦,避免直接调用远程服务。
  • 支持异步、可靠的消息传递。
  • 通过顺序消息保证业务流程的顺序性。
  • 事务消息保证分布式事务的一致性。

这篇教程将帮助你实现 Spring Boot 和 Spring Cloud Alibaba 集成 RocketMQ 的基本功能,之后可以根据业务需求进行扩展。如果这篇教程对你有帮助,记得点赞、收藏哦! 🚀

http://www.dtcms.com/wzjs/35305.html

相关文章:

  • 定安网站制作快手流量推广免费网站
  • 聊城做网站的公司行情怎么能在百度上做推广
  • 大庆网站设计爱站工具包官网
  • 上海公司沪牌价格超级seo工具
  • 深圳市住房和建设局官网站首页营销培训课程视频
  • 可以做问答的网站河南网站优化
  • vr 做的网站百度导航如何设置公司地址
  • 建设厅网站打不开seo中国
  • 做百科权威网站有哪些制作网站要花多少钱
  • 济南模板网站设计百度客户电话
  • 如何知道网站是否被kseo 论坛
  • 一级a做美国片免费网站今日重要新闻
  • wordpress.org教程首页排名关键词优化
  • 商城网站开发报价方案线下推广方式
  • 西部数据网站助手手机版百度入口
  • 1688免费货源网东莞营销网站建设优化
  • 如何建立内外网网站360营销推广
  • not found的网站合肥百度快速排名提升
  • 2017网站风格青岛百度推广优化怎么做的
  • 营销型网站制作培训多少钱seo综合查询是什么意思
  • 制作一个链接网站google store
  • 用ps做网站尺寸盐酸达泊西汀片是治疗什么的药物
  • 超轻粘土做动漫网站长沙网站seo分析
  • h5网站开发是什么意思b站推广费用一般多少
  • 网站源码编辑软件黄页88网站推广方案
  • 阿里云怎么做淘宝客网站曲靖seo建站
  • 开个做网站的公司深圳最好的外贸seo培训
  • 简述网站开发基本流程网络优化培训要多少钱
  • 西宁做网站的公司百度问问
  • 福州营销型网站建设价格2345网址导航用户中心