Kafka 作为消息中间件,得到越来越广泛的应用。Kafka connect 是一种可扩展、可信赖的工具, 用于Kafka 和其它应用系统之间的数据流动。数据源系统可以通过 connect (source) 把消息放入到 kafka 的 topic 中,其它系统可以通过 connect (sink) 从 kafka 中读取。
单机版connect 演示
kafka 的包里提供了一些示例。下面以文件 --> kafka --> 文件作为示例。
1. 启动 Connect Source 和 Connect Sink (kafka 的服务要事先启动好)
$ bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties
其中 config/connect-standalone.properties 中主要有如下配置:
- bootstrap.servers 这个配置的是 Kafka 服务器的地址列表。如: host1:9092,host2:9092
- key.converter 配置一个 key 的转换类,用于 source connector 写入 kafka 的数据格式,或者 sink connector 从 kafka 读取的数据格式
- value.converter 同 key.converter ,只不过这是作用于 value 的。
- offset.storage.file.filename 配置存储偏移信息的文件
converter 指定了放入 kafka 中的数据格式以及如何把它转换成 Connect 的数据。
2. 启动一个 Consumer,用于观察 kafka topic 里是否有消息
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
3. 往 text.txt 中写入内容
$ echo 'firest line' >> test.txt
可以看到 2 中启动的 consumer 收到了一条消息:
这条记录也被写到 test.sink.txt 文件中了