随笔分类 - MQ
摘要:disruptor和kafka区别disruptor,内存队列,使用场景一般在系统内部,提高在高并发的情况下系统的性能,一般作用于线程间的消息传递kafka,分布式消息队列,使用场景一般在系统和系统间的消息传递,吞吐量高,也适用于消息流数据处理的中间件队列队列有两种实现思路。一种是基于链表实现的链式
阅读全文
摘要:Pulsar 架构解析 在一致性方面,Pulsar 采用 Quorum 算法,通过 write quorum 和 ack quorum 来保证分布式消息队列的副本数和强一致写入的应答数(A>W/2)。在性能方面,Pulsar 采用 Pipeline 方式生产消息,通过顺序写和条带化写入降低磁盘 IO
阅读全文
摘要:1、为什么有消息系统 1. 解耦合 2. 异步处理 例如电商平台,秒杀活动。一般流程会分为:1: 风险控制 、2: 库存锁定 、3: 生成订单 、4: 短信通知 、5: 更新数据 3. 通过消息系统将秒杀活动业务拆分开,将不急需处理的业务放在后面慢慢处理;流程改为:1: 风险控制 、2: 库存锁定
阅读全文
摘要:为什么在RocketMQ和kafka中选型 在单机同步发送的场景下,Kafka>RocketMQ,Kafka的吞吐量高达17.3w/s,RocketMQ吞吐量在11.6w/s。 kafka高性能原因 生产者 Kafka会把收到的消息都写入到硬盘中,它绝对不会丢失数据。为了优化写入速度Kafak采用了
阅读全文
摘要:1、Kafka可以保证顺序处理消息,RabbitMQ相对较弱。2、在消息路由和过滤方面,RabbitMQ提供了更好的支持。3、RabbitMQ有消息存活时间(TTL)和延迟/预定消息功能,Kafka没有。4、在消息留存方面,RabbitMQ消息一旦消费成功就会删除,反之处理失败则放回,但Kafka会
阅读全文
摘要:rabbitMQ与activeMQ区别 之前的项目中都用到了这两个消息队列 ActiveMq,传统的消息队列,使用Java语言编写。基于JMS(Java Message Service),采用多线程并发,资源消耗比较大。支持P2P和发布订阅两种模式,如果使用java语言开发项目,可以考虑使用acti
阅读全文