
消息队列
Charles_yy
记录一切
展开
-
消息队列消息丢失的原因及解决办法 RabbitMQ 和 Kafka
1. MQ一条消息的生产和消费过程 消息的丢失可能发生在Producer、Broker、Consumer 的任一阶段;2. RabbitMQ 2.1 生产者丢失数据原因 生产者将数据发送到 RabbitMQ 的时候,消息可能因为网络等问题在传入过程中给搞丢了。 2.1.1生产者端解决方法开启 RabbitMQ 事务 使用用 RabbitMQ 提供的事务功能,就是生产者发送数据之前开启 RabbitMQ 事务channel.tx...原创 2020-10-19 09:52:26 · 7181 阅读 · 1 评论 -
消息队列消息持续积压 与 消息队列满解决方法
1. 消息队列消息持续积压 与消息队列满出现原因系统的某个部分出现了性能问题,来不及处理上游发送的消息,才会导致消息积压消息队列消息持续积压 与消息队列满出现原因 可以从生产者端与消费者端两个方面去思考,要么是发送变快,要么是消费变慢:Producer 端单位时间发送的消息增多,Consumer 端短时间内来不及消费; Producer 端单位时间发送的消息正常,Consumer 端因消费线程低效不能及时消费2. 如何优化MQ性能避免消息积压 消息队列的性能优化,需要优化...原创 2020-10-18 11:08:19 · 4892 阅读 · 2 评论 -
Kafka 心跳机制 重复消费
kafka 心跳机制Kafka是通过心跳机制来控制消费超时,心跳机制对于消费者客户端来说是无感的,它是一个异步线程,当我们启动一个消费者实例时,心跳线程就开始工作了。心跳超时会导致消息重复消费。在org.apache.kafka.clients.consumer.internals.AbstractCoordinator中会启动一个HeartbeatThread线程来定时发送心跳和检测消费者的状态。每个消费者都有个org.apache.kafka.clients.consumer.internals原创 2020-10-18 00:03:03 · 2694 阅读 · 1 评论 -
Kafka消费者负载均衡策略 消费者再平衡 consumer rebalance 心跳机制
消费者负载均衡策略一、消费者平衡过程(consumer rebalance) 1. 消费者平衡过程 消费者平衡过程是指 消费者重新加入消费组,并且重新分配分区Partition给消费者的过程。 2. 会引起消费者平衡的情况新的消费者加入消费组 某个消费者从消费组中退出(异常或正常) 增加订阅主题的分区(kafka的分区数,可以动态的增加,但不能减少) 某台broker宕机,新的协调器ZK当选 某个消费者在心跳会话时间内没有发送心跳请求(配置参数:...原创 2020-10-17 21:38:30 · 4274 阅读 · 0 评论 -
kafka 如何解决消息队列重复消费
1、消息重复消费场景kafka实际上有个offset的概念,就是每个消息写进去,都有一个offset,代表他的序号,然后consumer消费了数据之后,每隔一段时间,会把自己消费过的消息的offset提交一下,代表已经消费过了,下次消费时,会继续从上次消费到的最后一次offset来继续消费。但是凡事总有意外,比如我们之前生产经常遇到的,就是你有时候重启系统,看你怎么重启了,如果碰到点着急的,直接kill进程了,再重启。这会导致consumer有些消息处理了,但是没来得及提交offset。重启之后,少数消原创 2020-10-17 20:47:19 · 5559 阅读 · 0 评论 -
为什么Kafka性能强于RabbitMQ
一、Kafka VS RabbitMQ 检验一款消息队列的核心性能指标是 系统吞吐量 和系统延迟 。吞吐量测试测量队列在硬件(特别是磁盘和 CPU)使用方面的效率。 延迟测试测量每个系统传递实时消息的差别,这是实时任务关键型应用程序以及微服务架构的核心要求。结论:吞吐量:Kafka 在三个系统中的吞吐量最高,是 RabbitMQ 的 15 倍,Pulsar 的 2 倍。系统延迟:Kafka 在较高的吞吐量下提供了最低的延迟,同时还提供了强大的持久性和高可用性。Rabbit...原创 2020-10-08 15:40:51 · 2560 阅读 · 1 评论