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

国内php开发的电商网站有哪些wordpress显示缩略图

国内php开发的电商网站有哪些,wordpress显示缩略图,网站改版的步骤,东莞市建设工程质监督站网站在消息队列#xff08;MQ#xff09;中保证消息的顺序性是一个常见的需求#xff0c;尤其是在需要严格按顺序处理业务逻辑的场景#xff08;例如#xff1a;订单创建 → 支付 → 发货#xff09;。 一、消息顺序性被破坏的原因 生产者异步/并行发送#xff1a;消息可能…在消息队列MQ中保证消息的顺序性是一个常见的需求尤其是在需要严格按顺序处理业务逻辑的场景例如订单创建 → 支付 → 发货。 一、消息顺序性被破坏的原因 生产者异步/并行发送消息可能以不同顺序到达MQ。MQ的分区/队列机制消息被分散到不同分区或队列不同队列的消费速度不一致。消费者并行消费多个消费者实例或线程同时处理消息导致乱序。 二、保证消息顺序性的核心方案 核心原则将需要顺序处理的消息路由到同一个队列或分区并由单线程顺序消费。 1. 生产者保证消息路由到同一队列 业务标识路由将同一业务标识如订单ID、用户ID的消息通过相同的路由键如哈希取模发送到同一个队列。 Kafka为消息指定相同的 Key相同 Key 的消息会进入同一个分区或者发送消息时将同一业务的消息指定到同一个分区partition。 //指定分区 0 kafkaTemplate.send(kafkatopic, 0, key-001, value-0001);//相同业务key key-001 kafkaTemplate.send(kafkatopic, key-001, value-0001);RocketMQ使用 MessageQueueSelector 自定义队列选择逻辑确保同一业务的消息进入同一队列。 SendResult sendResult producer.send(msg, new MessageQueueSelector() {Overridepublic MessageQueue select(ListMessageQueue mqs, Message msg, Object arg) {Integer id (Integer) arg;int index id % mqs.size();return mqs.get(index);} }, orderId);2. MQ服务端维护队列顺序 分区/队列内有序MQ需保证单个分区或队列内消息的存储和投递顺序与发送顺序一致。限制Kafka分区、RocketMQ队列默认保证分区/队列内消息顺序。 3. 消费者单线程顺序消费 单线程消费消费者对同一队列的消息使用单线程处理避免并发导致的乱序。示例 Kafka每个分区仅由一个消费者线程处理天生就是单线程的。RocketMQ使用 MessageListenerOrderly 监听器顺序消费。 代码示例RocketMQ消费者consumer.registerMessageListener(new MessageListenerOrderly() {Overridepublic ConsumeOrderlyStatus consumeMessage(ListMessageExt messages, ConsumeOrderlyContext context) {// 单线程处理消息return ConsumeOrderlyStatus.SUCCESS;} });4. 失败重试不破坏顺序 顺序消费的重试机制若某条消息消费失败需阻塞后续消息处理直到当前消息成功。示例RocketMQ在顺序消费模式下失败时会重试当前消息后续消息需等待。 三、不同MQ的实现差异 消息队列顺序性支持关键配置Kafka分区内顺序保证相同Key的消息发送到同一分区RocketMQ队列内顺序保证需使用顺序消息APIMessageListenerOrderly 队列选择器RabbitMQ无原生支持需通过单队列单消费者模拟顺序性单一队列 单消费者线程synchronized 四、注意事项 性能与扩展性顺序性会牺牲并行度可通过增加队列/分区数量横向扩展不同业务标识分散到不同队列。全局顺序性需所有消息进入同一队列如Kafka单分区但会严重限制吞吐量通常不建议。业务设计仅在必要场景如订单链路启用顺序性其他场景尽量允许乱序。 五、总结 1. 保证消息顺序性的核心步骤 . 生产者按业务标识将消息路由到同一队列。. MQ服务端确保队列内消息存储有序。. 消费者单线程消费队列失败时阻塞重试。 通过合理设计业务标识和MQ配置可以在分布式系统中高效实现局部顺序性平衡一致性与性能。 2. 不同MQ如何选择 三种MQ相比较而言RocketMQ更适合顺序消费的业务场景总结如下 . RabbitMQ需要设定交换机Exchange与队列Queue的绑定关系并且一个队列只对应一个消费者Consumer才可以保证顺序消费但是队列中的消息被消费者拉去后会从队列删除如果消息消费失败重试时会重新入队消息的顺序就打乱了。. Kafka虽然可以实现分区顺序消费但是在消息失败时并不会锁住整个partition分区该消息之后的消息还是会被消费顺序也就打乱了顺序消费的设计并没有RocketMQ那么完善。. RocketMQ使用顺序发送并结合队列选择器可以将同一业务消息发送到同一个队列再结合MessageListenerOrderly监听器保证生产者发送顺序和队列存储顺序以及消费者消费消息一致并且消费失败时会返回SUSPEND_CURRENT_QUEUE_A_MOMENT状态阻塞队列一段时间因为有队列锁之后会从失败处开始再次消费。 RocketMQ顺序消费实现机制参考链接https://blog.csdn.net/m0_71845127/article/details/145990210
http://www.w-s-a.com/news/753618/

相关文章:

  • 建一个团购网站WordPress文章字号设置
  • 做漂亮的网站东营网站seo
  • 网站开发摊销做设计哪个网站可以接单
  • 惠州h5网站建设建设公司网站报价
  • 做网站多少钱 优帮云嘉兴五县两区网站建设
  • 三亚旅游网站策划书企业网站建设的定位
  • 网站建设工作台账网站建设的实验结论
  • 商业网站建设平台制作软件的软件
  • 本地网站开发wordpress页面关键词和描述
  • 微网站 合同软件开发培训方案
  • 怎么做淘宝客网站备案广告公司图片大全
  • 微信小程序展示网站建设多少钱做网站用什么软件初二
  • 瀑布流资源网站模板打码网站建设
  • wordpress 支付宝打赏网站视觉优化的意义
  • 建设网站需要几个文件夹永久免费内存大服务器
  • 可信赖的手机网站建设wordpress 显示摘要
  • 谁给我一个企业邮箱认证wordpress优化攻略
  • 建站软件免费版下载涿州做网站的
  • html5网站开发西安哪家网站建设公司好
  • 怎么做网站赚广州番禺区是富人区吗
  • 服装网站推广方案戴尔网站建设成功
  • 手机网站布局国外可以用什么网站做问卷
  • 手机建网站网店logo设计图片免费
  • 装修网站有哪些wordpress外网访问错误
  • 个人做电影网站服务器放国外安全吗建设通app
  • 西安公司网站开发快站官网平台
  • 北京网站设计公司哪个好网站开发属于哪个部门
  • 现在海外做的比较好一点的网站网站报价书
  • 做整站优化漳州建网站
  • jsp网站建设期末作业搜索引擎优化的定义是什么