Kafka
文章平均质量分 85
阳光倾洒
目前专注于大学生项目实战开发,讲解,毕业答疑辅导以及产品测评、宣传、工具推广等合作。
展开
-
Kafka基础原理
实现思路:发送延时消息时先把消息按照不同的延迟时间段发送到指定的队列中(topic_1s,topic_5s,topic_10s,...topic_2h,这个一般不能支持任意时间段的延时),然后通过定时器进行轮训消费这些topic,查看消息是否到期,如果到期就把这个消息发送到具体业务处理的topic中,队列中消息越靠前的到期时间越早,具体来说就是定时器在一次消费过程中,对消息的发送时间做判断,看下是否延迟到对应时间了,如果到了就转发,如果还没到这一次定时任务就可以提前结束了。这是最强的数据保证。原创 2023-06-12 08:35:39 · 751 阅读 · 0 评论 -
Kafka 如何保证消息不丢失
1、生产者1.1 丢失原因:kafka生产端异步发送消息后,不管broker是否响应,立即返回,伪代码producer.send(msg),由于网络抖动,导致消息压根就没有发送到broker端;kafka生产端发送消息超出大小限制,broker端接到以后没法进行存储;1.2 解决方案:1、生产者调用异步回调消息。伪代码如下: producer.send(msg,callback);2、生产者增加消息确认机制,设置生产者参数:acks = all。partition的leader副本接收到消息,等原创 2023-05-08 11:01:44 · 2933 阅读 · 0 评论 -
Kafka消费积压百万数据方案
一、背景某一天下午业务高峰期,突然收到系统告警,kafka对应的topic消息出现大量积压,且kafka消费速率和写入速率无明显变化,5分钟内主题平均每分钟写入速率如下:当前 419718,昨天 366523,对比昨天增长14.51%5分钟内平均每分钟消费速率如下:当前 348716,昨天70522,对此昨天降低589%,当前积压 1252965,消费速率已低于写入速率,积压量持续增长原创 2023-05-07 15:58:43 · 588 阅读 · 0 评论 -
Kafka保证消息幂等以及解决方案
1、幂等的基本概念幂等简单点讲,就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会产生任何副作用。幂等分很多种,比如接口的幂等、消息的幂等,它是分布式系统设计时必须要考虑的一个方面。查询操作(天然幂等)查询一次和查询多次,在数据不变的情况下,查询结果是一样的。查询是天然的幂等操作删除操作 (天然幂等) 删除操作也是幂等的,删除一次和删除多次都是把数据删除(注意可能返回结果不一样,删除的数据不存在返回 0,删除的数据多条,返回结果多个)。删除操作 (天然幂等)原创 2023-05-07 15:55:28 · 2255 阅读 · 0 评论