Kafka 学习笔记(七)之Kafka Consistency

时间:2022-12-26 12:00:14

Kafka Consistency

guarantee 包括(这个在kafka官网上,在这里总结概述一下)

1. 在一个partition里,消息是顺序的

2.consumer 收到消息的顺序就是log写入的顺序

3.当所有的in sync replica消息被写入log,我们认为是committed的了

4.只要有一个in sync replica(ISR)存在,消息就不会丢

消息总是先写入leader,followers 从leader里得到消息,产生replica。

当一个replica宕机了,我们就说他不是in sync replica了


要是leader宕机了会发生什么?

kafka从replica里选新的leader,几秒钟的时间选出leader

shutdown leader中,controlled shutdown可以transfer leadership,这样不会丢message

abrupt shutdown,会选出新的leader,会有几秒钟的leader not available

在kafka 0.8.2以后的版本中,可以将controlled.shutdown.enable=true。这样可以减少message的损失

另一个kafka 0.8.2的新的配置是

Min.Insync.replicas

如果这个值等于2,那么最少的insync数是2,当活着replica少于2的时候,整个topic变成readonly了,不能向里面写入消息


Kafka还支持cluster replication,replicate one cluster to another.

配置好consumer,producer的properties,同时可以设置whitelist 和black list来选择copy哪些topic


------------------------------------------------我是另一个分割线------------------------------------

备注几个kafka相关的试用工具

图形化monitor界面:https://github.com/claudemamo/kafka-web-console

Log integration: Log4Jproducer

Cloudera manager 来管理hadoop

Metrics: https://github.com/stealthly/metrics-kafka, report alerts 和 charts

Schema: https://github.com/schema-repo/schema-repo

Generic command line non-JVM Apache Kafka producer and consumer:

https://github.com/edenhill/kafkacat