我们有一个接收用户数据并将数据推送给kafka的系统,只有当我们确定数据已经被推送时,我们才会向用户发送一个"OK“响应。
由于新的卡夫卡正在使用异步发送(ProducerRecord,回调),我想知道这个发送是否具有抗崩溃性(容错)?
我猜它很可能不是,那么我如何在同步模式下使用它呢?还是应该让用户等到回调被调用时再使用?
发布于 2015-02-21 06:48:01
根据卡夫卡设计的说法:
异步发送 批处理是效率的主要驱动因素之一,为支持批处理,Kafka生产者采用了异步模式,可以在内存中积累数据,并在单个请求中发送更大的批。可以将批处理配置为累积不超过固定数量的消息,并且等待时间不超过某个固定延迟范围(例如100条消息或5秒)。这允许发送更多字节,而服务器上很少有更大的I/O操作。由于这种缓冲发生在客户机中,这显然降低了持久性,因为在内存中缓冲和尚未发送的任何数据在生产者崩溃时都会丢失。
https://stackoverflow.com/questions/28642638
复制相似问题