消息队列
u010010600
这个作者很懒,什么都没留下…
展开
-
消息队列kafka教程
kafka 学习 非常详细的经典教程所以与传统的将数据缓存在内存中然后刷到硬盘的设计不同,Kafka直接将数据写到了文件系统的日志中。常量时间的操作效率在大多数的消息系统中,数据持久化的机制往往是为每个cosumer提供一个B树或者其他的随机读写的数据结构。B树当然是很棒的,但是也带了一些代价:比如B树的复杂度是O(log N),O(log N)通常被认为就是常量复杂度了,但对于硬盘操作来说并非如此。磁盘进行一次搜索需要10ms,每个硬盘在同一时间只能进行一次搜索,这样并发处理就成了问题。虽然存储系统转载 2020-09-24 17:37:23 · 142 阅读 · 0 评论 -
消息队列消息积压问题
消息积压是正常现象,积压越来越多就需要处理了。主要原因是,对于绝大多数使用消息队列的业务来说**,消息队列本身的处理能力要远大于业务系统的处理能力**。主流消息队列的单个节点,消息收发的性能可以达到每秒钟处理几万至几十万条消息的水平,还可以通过水平扩展 Broker 的实例数成倍地提升处理能力。而一般的业务系统需要处理的业务逻辑远比消息队列要复杂,单个节点每秒钟可以处理几百到几千次请求,已经可以算是性能非常好的了。所以,对于消息队列的性能优化,我们更关注的是,在消息的收发两端,我们的业务代码怎么和消息队转载 2020-09-22 21:42:10 · 747 阅读 · 0 评论 -
消息队列实现分布式事务
消息队列中的“事务”,主要解决的是消息生产者和消息消费者的数据一致性问题。电商下单步骤1、生成订单2、删除购物车在分布式系统中, 任何一个步骤都有可能失败, 可能出现订单数据与购物车数据不一致的情况,比如说1、创建了订单,没有清理购物车;2、订单没创建成功,购物车里面的商品却被清掉了。订单系统给消息队列发送订单消息并开启事务(此时订单消息并未被购物车系统可见)订单系统执行本地事务,生成订单成功,给消息队列消息让其消息对购物车系统可见购物车系统消费消息在 RocketMQ 中的事务实现中,转载 2020-09-22 20:45:41 · 257 阅读 · 0 评论 -
消息队列初步
1、使用场景异步(秒杀系统)秒杀操作一般分为多个步骤如所库存,生成订单,发送短信通知等锁库存后就丢进消息队列中,后面可以对接各种异步处理流量控制在网关和后端服务之间增加消息队列此处运维人员可以水平扩容后端服务和消息队列同时无法处理的请求,可以超时关闭或者使用令牌桶机制在知道请求量的情况下,令牌桶机制实现简单,redis也可以实现令牌桶机制,或者自己实现一个令牌桶服务解耦合实现应用与应用之间的解耦比如原来的短信通知直接对接短信平台加入消息队列后服务端和短信平台之间不相互影响2、不转载 2020-09-21 21:30:37 · 114 阅读 · 0 评论