Kafka 消息送达语义】的更多相关文章

最近碰到了消息时间戳的问题,于是花了一些功夫研究了一下,特此记录一下.   Kafka消息的时间戳 在消息中增加了一个时间戳字段和时间戳类型.目前支持的时间戳类型有两种: CreateTime 和 LogAppendTime 前者表示producer创建这条消息的时间:后者表示broker接收到这条消息的时间(严格来说,是leader broker将这条消息写入到log的时间)   为什么要加入时间戳? 引入时间戳主要解决3个问题: 日志保存(log retention)策略:Kafka目前会定…
Message Delivery Semantics At most once -- Messages may be lost but are never redelivered(消息可能丢失但不会重复投递) At least once -- Messages are never lost but may be redelivered(消息不会丢失但可能重复投递) Exactly once -- this is what people actually want, each message is…
一些观念的修正 从 0.9 版本开始,Kafka 的标语已经从“一个高吞吐量,分布式的消息系统”改为"一个分布式流平台". Kafka不仅仅是一个队列,而且是一个存储,有超强的堆积能力. Kafka不仅用在吞吐量高的大数据场景,也可以用在有事务要求的业务系统上,但性能较低. Kafka不是Topic越多越好,由于其设计原理,在数量达到阈值后,其性能和Topic数量成反比. 引入了消息队列,就等于引入了异步,不管你是出于什么目的.这通常意味着业务流程的改变,甚至产品体验的变更. 消息系统…
原文见:http://kafka.apache.org/documentation.html#semantics kafka在生产者和消费者之间的传输是如何保证的,我们可以知道有这么几种可能提供的delivery guarantee: At most once 消息可能会丢,但绝不会重复传输 At least one 消息绝不会丢,但可能会重复传输 Exactly once 每条消息肯定会被传输一次且仅传输一次,很多时候这是用户所想要的. 值得注意的是,当Producer向broker发送消息时…
先从源码来深入理解一下 DirectKafkaInputDStream 的将 kafka 作为输入流时,如何确保 exactly-once 语义. val stream: InputDStream[(String, String, Long)] = KafkaUtils.createDirectStream [String, String, StringDecoder, StringDecoder, (String, String, Long)]( ssc, kafkaParams, fromO…
Spark streaming 和kafka 处理确保消息不丢失的总结 接入kafka 我们前面的1到4 都在说 spark streaming 接入 kafka 消息的事情.讲了两种接入方式,以及spark streaming 如何和kafka协作接收数据,处理数据生成rdd的 主要有如下两种方式 基于分布式receiver 基于receiver的方法采用Kafka的高级消费者API,每个executor进程都不断拉取消息,并同时保存在executor内存与HDFS上的预写日志(write-a…
关于 Kafka 消息丢失.重复消费和顺序消费的问题 消息丢失,消息重复消费,消息顺序消费等问题是我们使用 MQ 时不得不考虑的一个问题,下面我结合实际的业务来和你分享一下解决方案. 消息丢失问题 比如我们使用 Kakfa 时,以下场景都会发生消息丢失: producer -> broker (生产者生产消息) broker -> broker (集群环境,broker 同步给其他 broker) broker -> consumer (消费者消费消息) 解决方案也很简单,设置 acks…
1.前言 本文的上篇<IM消息送达保证机制实现(一):保证在线实时消息的可靠投递>中,我们讨论了在线实时消息的投递可以通过应用层的确认.发送方的超时重传.接收方的去重等手段来保证业务层面消息的不丢不重. 但实时在线投递针对的是消息收发双方都在线的情况(如当发送方用户A发送消息给接收方用户B时,用户B是在线的),那如果消息的接收方用户B不在线,系统是如何保证消息的可达性的呢?这就是本文要讨论的问题.(本文同步发布于:http://www.52im.net/thread-594-1-1.html)…
1.概述 在开发工作当中,消费 Kafka 集群中的消息时,数据的变动是我们所关心的,当业务并不复杂的前提下,我们可以使用 Kafka 提供的命令工具,配合 Zookeeper 客户端工具,可以很方便的完成我们的工作.随着业务的复杂化,Group 和 Topic 的增加,此时我们使用 Kafka 提供的命令工具,已预感到力不从心,这时候 Kafka 的监控系统此刻便尤为显得重要,我们需要观察消费应用的详情. 监控系统业界有很多杰出的开源监控系统.我们在早期,有使用 KafkaMonitor 和…
转载:https://baijiahao.baidu.com/s?id=1583469327946027281&wfr=spider&for=pc 消息发送方式 想清楚Kafka发送的消息是否丢失,需要先了解Kafka消息的发送方式. Kafka消息发送分同步(sync).异步(async)两种方式 默认是使用同步方式,可通过producer.type属性进行配置: Kafka保证消息被安全生产,有三个选项分别是0,1,-1 通过request.required.acks属性进行配置: 0…