消息中间件
文章平均质量分 97
rabbit mq和rocket mq
香树
我们不生产代码,我们只是代码的搬运工
展开
-
rocketMQ高级和源码
分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。Apache下开源的另外一款MQ—ActiveMQ(默认采用的KahaDB做消息存储)可选用JDBC的方式来做消息持久化,通过简单的xml配置信息即可实现JDBC消息存储。由于,普通关系型数据库(如Mysql)在单表数据量达到千万级别的情况下,其IO读写性能往往会出现瓶颈。在可靠性方面,该种方案非常依赖DB,如果一旦DB出现故障,则MQ的消息就无法落盘存储会导致线上故障文件系统目前业界较为常用的几款产品(RocketMQ/Kafka/RabbitMQ原创 2022-08-21 11:32:20 · 312 阅读 · 0 评论 -
RocketMQ生产使用案例(中)
模拟电商网站购物场景中的【下单】和【支付】业务用户提交订单后,扣减库存成功、扣减优惠券成功、使用余额成功,但是在确认订单操作失败,需要对库存、库存、余额进行回退。如何保证数据的完整性?使用MQ保证在下单失败后系统数据的完整性用户通过第三方支付平台(支付宝、微信)支付成功后,第三方支付平台要通过回调API异步通知商家支付系统用户支付结果,支付系统根据支付结果修改订单状态、记录支付日志和给用户增加积分。商家支付系统如何保证在收到第三方支付平台的异步通知时,如何快速给第三方支付凭条做出回应?通过MQ进行数据分发,原创 2022-07-10 17:51:19 · 210 阅读 · 0 评论 -
RocketMQ(上)
消息队列是一种“先进先出”的数据结构其应用场景主要包含以下3个方面系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。使用消息队列解耦合,系统的耦合性就会提高了。比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。当物流系统回复后,补充处理存在消息队列中的订单消息即可,终端系统感知不到物流系统发原创 2022-07-10 11:54:03 · 156 阅读 · 0 评论 -
rabbitMQ学习笔记(全)
MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务1.流量消峰举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理原创 2022-06-18 14:19:32 · 1642 阅读 · 1 评论