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

网站开发的收入网站上传的流程

网站开发的收入,网站上传的流程,烹饪考试试卷哪个网站可以做,电子版产品图册怎么制作一、什么是可靠消息投递?—— 消息队列的“防丢宝典” 可靠消息投递 是指通过消息队列(如 RocketMQ)确保消息在生产、传输、消费过程中不丢失、不重复、有序到达。其核心目标是在分布式系统中保障数据最终一致性,常用于订单处理、…
一、什么是可靠消息投递?—— 消息队列的“防丢宝典”

可靠消息投递 是指通过消息队列(如 RocketMQ)确保消息在生产、传输、消费过程中不丢失、不重复、有序到达。其核心目标是在分布式系统中保障数据最终一致性,常用于订单处理、支付回调、日志同步等关键业务。

核心角色
生产者(Producer):发送消息的客户端。
消费者(Consumer):接收并处理消息的客户端。
Broker:消息存储和转发的中间服务器(如 RocketMQ 的节点)。
Name Server:存储 Broker 元数据(如路由信息)。

通俗比喻
想象快递公司(RocketMQ)如何保证包裹(消息)安全送达:

  1. 下单(生产者发送消息)→
  2. 分拣中心(Broker 存储)→
  3. 派送(消费者接收)→
  4. 签收反馈(确认消息已处理)。

二、RocketMQ原理:如何实现可靠投递?
1. 核心架构与流程

在这里插入图片描述

2. 关键机制

持久化存储
CommitLog:所有消息顺序写入单一文件,确保顺序性和原子性。
ConsumeQueue:消费者组消费进度记录,支持断点续传。
多副本机制
• Broker 默认同步复制消息到其他节点,防止单点故障。
ACK确认机制
• 消费者拉取消息后发送确认,Broker 删除已确认消息。
重试与死信队列
• 消费失败时自动重试,多次失败后转入死信队列(DLQ)人工处理。

3. 图解:消息投递流程
[生产者] → 发送消息 → [Name Server] → 路由到 Broker → 存入 CommitLog  ↓  [消费者组] ← 拉取消息 ← [Broker]  ↓  [消费者] → 处理消息 → 发送 ACK → [Broker] → 删除消息  

三、适用场景:哪些业务需要可靠消息投递?
  1. 订单创建
    • 扣减库存 → 生成订单 → 发送物流通知。
    • 失败需回滚(如扣款失败则恢复库存)。
  2. 支付回调
    • 支付成功后通知订单服务,需确保通知至少一次。
  3. 日志同步
    • 微服务间异步记录操作日志,保证最终一致性。
  4. 事件驱动架构
    • 用户注册 → 发送欢迎邮件 → 更新用户状态。

反例
实时性要求极高:如股票交易(需毫秒级响应)。
简单请求响应:如HTTP API调用,无需异步解耦。


四、实战:Spring Boot + RocketMQ 快速上手
1. 环境准备

下载 RocketMQ:访问官网下载最新版(以 2.11.0 为例),解压后启动:

# 启动 Name Server
sh bin/mqnamesrv# 启动 Broker(默认端口 9876)
sh bin/mqbroker -n localhost:9876
2. 添加依赖

pom.xml 中添加 RocketMQ 和 Spring Boot 集成依赖:

<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.11.0</version>
</dependency>
3. 配置文件

application.yml 中配置 RocketMQ 生产者和消费者:

rocketmq:producer:name-server: localhost:9876default-topic: order_topicconsumer:name-server: localhost:9876default-topic: order_topicconsumer-group: order_consumer_group
4. 生产者代码(发送消息)
@Service
public class OrderService {@Autowiredprivate RocketMQTemplate rocketMQTemplate;public void createOrder(Order order) {// 1. 扣减库存(本地事务)inventoryService.deduct(order.getSkuId());// 2. 发送消息到 RocketMQ(异步解耦)rocketMQTemplate.convertAndSend("order_topic", order);}
}
5. 消费者代码(处理消息)
@Service
public class OrderConsumer {@Autowiredprivate OrderDAO orderDAO;@RocketMQListener(topics = "order_topic",consumerGroup = "order_consumer_group")public void listen(Order order) {// 3. 生成订单(本地事务)orderDAO.insert(order);// 4. 发送物流通知(外部服务调用)logisticsService.sendLogistics(order.getId());}
}
6. 测试与验证

正常流程
• 订单创建 → 消息发送 → 订单入库 → 物流通知。
失败场景
• 物流服务宕机 → 消息重试3次后进入DLQ → 运维手动处理。


五、常见问题与解决
1. 消息丢失

问题:Broker宕机导致未持久化消息丢失。
解决方案
启用持久化:配置 storePathCommitLogstorePathConsumeQueue 到磁盘。
多副本:设置 brokerRoleSYNC_MASTER,启用自动同步。

2. 消息重复消费

问题:消费者重启后重复处理旧消息。
解决方案
消费者组:通过 consumer-group 确保每个消息只被一个消费者处理。
Offset管理:RocketMQ 自动记录消费进度,重启后从断点续传。

3. 消息顺序性不一致

问题:高并发下消息乱序到达。
解决方案
顺序消息:设置 messageModel=ORDER,保证同一队列消息有序。
分片处理:将不同业务消息分到不同 Topic。

4. 消息延迟高

问题:网络拥堵或 Broker 负载过高导致消息堆积。
解决方案
批量消费:调整 pullBatchSize 提高吞吐量。
扩容 Broker:增加 Broker 节点分散负载。


六、RocketMQ vs 其他消息队列
对比维度RocketMQKafkaRabbitMQ
核心场景高可靠、顺序消息高吞吐、日志流复杂路由、灵活协议
存储引擎CommitLog + ConsumeQueuePartition + OffsetExchange + Queue
消息顺序支持顺序消息分区有序,跨分区无序严格顺序(通过Exchange)
持久化支持同步/异步持久化支持持久化支持持久化
社区生态中文文档完善,国内常用国际化,云原生支持社区活跃,多语言支持

七、总结与行动建议
  1. 掌握基础:通过示例代码理解生产者-消费者模型和ACK机制。
  2. 生产环境优化
    持久化配置:确保 commitLogconsumeQueue 持久化到磁盘。
    监控报警:通过 RocketMQ 控制台监控消息堆积和消费延迟。
  3. 进阶方向
    事务消息:结合本地事务实现强一致性(如订单扣款+消息发送)。
    延迟消息:实现定时任务(如30分钟后重试失败订单)。
    死信队列:自定义 DLQ 处理策略(如短信通知人工介入)。
  4. 避坑指南
    避免单 Topic:按业务类型分 Topic,防止耦合。
    合理设置重试次数:避免无限重试导致Broker压力过大。

最后思考
RocketMQ 是分布式系统中可靠的“消息管道”,尤其适合需要高一致性和顺序性的场景。对于金融、电商等对数据准确性要求极高的业务,它是不可或缺的中间件。掌握其核心原理和运维技巧,能有效提升系统的高可用性和稳定性。


文章转载自:

http://mrJYTBGW.yqpck.cn
http://nrhqRR5m.yqpck.cn
http://MqUOOPF1.yqpck.cn
http://OAz5vXVV.yqpck.cn
http://MB4Jm7gX.yqpck.cn
http://jr8iaJDy.yqpck.cn
http://Qk6dV7jR.yqpck.cn
http://ZmEa4PDC.yqpck.cn
http://5G7kzo5l.yqpck.cn
http://zdSvYT6B.yqpck.cn
http://bLKUKjKu.yqpck.cn
http://rkyBgPtm.yqpck.cn
http://5XgnwDDQ.yqpck.cn
http://qdhiHuJM.yqpck.cn
http://9GRxijOn.yqpck.cn
http://FlOpH4EK.yqpck.cn
http://6C74bC2G.yqpck.cn
http://6sI4A53E.yqpck.cn
http://xpCI0r9D.yqpck.cn
http://RgSLq0DA.yqpck.cn
http://KSvWG3yO.yqpck.cn
http://9d72qhC7.yqpck.cn
http://ZJDltv8Y.yqpck.cn
http://qWVAqzjn.yqpck.cn
http://gGcVmjwN.yqpck.cn
http://geQbTiYj.yqpck.cn
http://nXEisK1H.yqpck.cn
http://gUhaj8v7.yqpck.cn
http://FU8rXtsW.yqpck.cn
http://2hXpVDQo.yqpck.cn
http://www.dtcms.com/wzjs/703106.html

相关文章:

  • 承德工程建设信息网站做网站的公司一年能赚多少钱
  • h5网站和传统网站区别宠物app页面设计
  • 云南SEO网站建设网页制作与设计教材
  • 南宁做网站哪家好asp.net网站安装顺序
  • 清远做网站的怎样进入公众号平台
  • 营销网站建站企业海口网红景点
  • 外卖网站怎么做域名搜索引擎入口
  • 顺德定制网站设计昆明官网seo服务
  • 广州网站建设网站托管运营长沙互联网企业
  • 潮州营销型网站建设推广几何背景生成器网站
  • 做订阅号要建立网站吗群辉做网站服务器python
  • uzi粉丝做的网站常用的北京文化馆设计公司
  • 做网站前后端的发布流程青岛代理记账公司有哪些
  • 景德镇建设局网站筑云网站投诉
  • 中小企业网站建设公司上海平台网站建设公司排名
  • 吉林系统建站怎么用php网站开发路线
  • 温州网站建设策划网站代备案管理系统
  • 末年人免费观看网站郴州网站建设哪里比较好
  • 做毕业设计哪个网站好广告传媒公司主要做什么
  • 网站外链软件班级网站设计模板
  • 有什么教做维c甜品的网站快速排名seo软件
  • 免费网站设计平台易语言网站批量注册怎么做
  • 中国中小企业网站网址导航下载到桌面
  • 宁波网站建设制作订做网络维护工资多少一个月
  • 住建部网站村镇建设管理平台社群营销
  • 做免费采集电影网站犯法吗高碑店做网站的公司
  • 怎么用阿里云服务器做淘客网站网站优化培训如何优化
  • 空包网站怎么做高端手机网站定制
  • 凡科做网站关键词wordpress插件pdf
  • 天津网站备案在哪照相邵东微网站建设