美文网首页中间件kafka
kafka如何保证顺序性

kafka如何保证顺序性

作者: 任嘉平生愿 | 来源:发表于2019-01-03 11:32 被阅读1683次

1.Kafka 可以保证同一个分区里的消息是有序的。也就是说消息发送到一个Partition 是有顺序的。

kafka系列-kafka多分区的情况下保证数据的有序性 - weixin_41279060的博客 - CSDN博客

这篇文章解决的本质还是将相同数据发送到一个Partition中,注意发送消息可以指定分区。

java math.abs(x)是取绝对值

2.参数设置

retires  设为大于1

max.in.flight.request.per.connection 设为1

max.in.flight.requests.per.connection意思

指定了生产者在接收到服务器响应之前可以发送多个消息,值越高,占用的内存越大,当然也可以提升吞吐量。发生错误时,可能会造成数据的发送顺序改变,默认是5 。

解释:max.in.flight.request.per.connection 设为1的时候也就是说只接受1条数据当接受到2而1没有收到则会从

retires  重新获取,这样就会等1到了再取请求2数据。

全局顺序

的解决办法通常是最为保守的方式:

全局使用一个生产者

全局使用一个消费者(并严格到一个消费线程)

全局使用一个分区(当然不同的表可以使用不同的分区或者topic实现隔离与扩展)

局部顺序

同一key分发到同一partition上面.

private int partitionDefine(String keyToPartition) {

if (keyToPartition == null) {

return new Random().nextInt(numPartitions);

} else {

return Math.abs(keyToPartition.hashCode()) % numPartitions;

}

}

相关文章

  • MQ随记(2)

    如何保证消息不会被重复消费(保证消息消费时的幂等性) kafka 按照数据进入kafka的顺序,kafka会给每条...

  • kafka的可靠性保证

    这一篇主要来讲讲kafka的可靠性是如何实现的 1.kafka可靠性的基本机制 顺序性保证Kafka可以保证分区消...

  • kafka如何保证顺序性

    1.Kafka 可以保证同一个分区里的消息是有序的。也就是说消息发送到一个Partition 是有顺序的。 kaf...

  • kafka学习笔记2

    1、kafka分布式的情况下如何保证消息的顺序性 kafka并不适用对数据时序性要求严格的场景Kafka的做法是提...

  • Kafka对于消息顺序性的最佳实践

    Kafka可以保证消息在一个Partition分区内的顺序性。如果生产者按照顺序发送消息,Kafka将按照这个顺序...

  • 记一次面试

    面试官:使用Kafka,如何保证消息的顺序性?我:设置partition为1,同一个partition肯定是能保证...

  • kafka顺序保证

    kafka顺序保证 理想情况: Kafka 可以保证同 一个分区里的消息是有序的。 也就是说,如果生产者按照一定的...

  • JAVA-每日一面 2022-01-07

    问:1.kafka数据分区和消费者的关系,2.kafka的数据offset读取流程,3.kafka内部如何保证顺序...

  • kafka-怎么保证消息的可靠性与一致性

    在kafka中主要通过ISR机制来保证消息的可靠性。下面通过几个问题来说明kafka如何来保证消息可靠性与一致性 ...

  • 一.kafka设计解析

    1. 思考问题 kafka有哪些优点? kafka存储结构如何设计的? kafka的高效性是怎么保证的? kafk...

网友评论

    本文标题:kafka如何保证顺序性

    本文链接:https://www.haomeiwen.com/subject/bfgxrqtx.html