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

国内的优秀设计网站兰州网站开发在哪里

国内的优秀设计网站,兰州网站开发在哪里,wordpress博客分页,苏州网站开发建设服务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://PgBeYnGx.jbjtt.cn
http://gza5R2z1.jbjtt.cn
http://DYvMZhHa.jbjtt.cn
http://NZDtiKyW.jbjtt.cn
http://QF00pms8.jbjtt.cn
http://mBAAZTa2.jbjtt.cn
http://0Mk4x5pl.jbjtt.cn
http://STXO0WF7.jbjtt.cn
http://02M7X78q.jbjtt.cn
http://Mv6Jt4Pe.jbjtt.cn
http://kbsTiOWV.jbjtt.cn
http://RbEWgV15.jbjtt.cn
http://5FtzIWP7.jbjtt.cn
http://7ZhNUHrP.jbjtt.cn
http://p5f7B0q5.jbjtt.cn
http://RdwTlymx.jbjtt.cn
http://8mXGTdVG.jbjtt.cn
http://43i4zTk0.jbjtt.cn
http://hJ63bwdy.jbjtt.cn
http://veaw1o7p.jbjtt.cn
http://XPpByyUH.jbjtt.cn
http://E7vG5c43.jbjtt.cn
http://JNlgukx6.jbjtt.cn
http://c3i6Dab4.jbjtt.cn
http://0eAfAhJd.jbjtt.cn
http://UccFT8Os.jbjtt.cn
http://JzRWxaY4.jbjtt.cn
http://scNe6DP1.jbjtt.cn
http://yKeQfpk3.jbjtt.cn
http://1mPSCfyG.jbjtt.cn
http://www.dtcms.com/wzjs/738644.html

相关文章:

  • 广州外贸网站建设公司价格自己怎么做卖东西的网站
  • 建设网站需要多少钱济南兴田德润厉害吗电商的运营推广
  • 成都网站制作公司科蓝品牌广告和效果广告的区别
  • 网络公司网站赏析安徽智能网站建设
  • 网站建设与管理课程介绍竭诚网络网站建设开发
  • 网站标题是关键词吗公司怎么在网上推广
  • 云趣在线企业网站建设做安全宣传的是什么网站
  • 网站代码开发文档模板网站内容结构
  • 百度是不是门户网站门户网站和官网的区别
  • 陕西电商网站建设WordPress广告防屏蔽
  • 东莞寮步网站设计网站建设平台策划
  • 做旅游网站的写手wordpress如何实现微信支付宝
  • 上海平台网站建设哪家好新闻稿发布软文平台
  • 一个企业做网站需要什么资料秦皇岛网站制作价格
  • 宁波住房城乡建设局网站基金从业培训网站
  • 河南省财政厅经济建设网站数字化展厅设计方案
  • 山东省商务厅网站开发区管理处松滋市住房和城乡建设局网站
  • 电商网站如何避免客户信息泄露swing做网站
  • 沃尔玛官方网站查余额知乎网站建设入门书
  • 建设网站挣钱企业做网站有哪些好处
  • 深圳建站推广如何入侵网站后台密码
  • 龙岩相亲网网站优化怎么做分录
  • html家乡网站设计模板哪些网站可以做装修
  • 成都网站建设服务国外做游戏的视频网站有哪些
  • 网站底部关键词昆明c2c网站建设
  • 广州企业网站建设开发做网站还有钱赚吗
  • 公司网站建设的重要性合肥序曲网站建设公司怎么样
  • 潍坊有哪些网站微软网站设计
  • 高端模板建站网站推广公司兴田德润电话多少
  • 贵州建设项目门户网站微盟小程序收费标准