怎么保證Flink可以高效地讀取數(shù)據(jù)源中的數(shù)據(jù)?
在現(xiàn)實生產環(huán)境中,為了保證Flink可以高效地讀取數(shù)據(jù)源中的數(shù)據(jù),通常是跟一些分布式消息中件結合使用,例如Apache Kafka。Kafka的特點是分布式、多副本、高可用、高吞吐、可以記錄偏移量等。Flink和Kafka整合可以高效的讀取數(shù)據(jù),并且可以保證Exactly Once(精確一次性語義)
依賴
Apache Flink 集成了通用的 Kafka 連接器,它會盡力與 Kafka client 的最新版本保持同步。該連接器使用的 Kafka client 版本可能會在 Flink 版本之間發(fā)生變化。當前 Kafka client 向后兼容 0.10.0 或更高版本的 Kafka broker。有關 Kafka 兼容性的更多細節(jié),請參考 Kafka 官方文檔。
Kafka Consumer
Flink 的 Kafka consumer 稱為 FlinkKafkaConsumer。它提供對一個或多個 Kafka topics 的訪問。
構造函數(shù)接受以下參數(shù):
Topic 名稱或者名稱列表
用于反序列化 Kafka 數(shù)據(jù)的 DeserializationSchema 或者 KafkaDeserializationSchema
Kafka 消費者的屬性。需要以下屬性:
“bootstrap.servers”(以逗號分隔的 Kafka broker 列表)
“group.id” 消費組 ID

