Debezium的第一次用户,我在Debezium中每MINUTE只收到大约1000条消息(与在线基准相比非常慢(。Kafka-connect/MySQL/Kafka-Broker没有节流,不确定我在这里做什么。我会在这里发布配置以供参考。
Kafka Connect Worker的配置:
-e CONNECT_GROUP_ID="quickstart"
-e CONNECT_CONFIG_STORAGE_TOPIC="quickstart-config"
-e CONNECT_OFFSET_STORAGE_TOPIC="quickstart-offsets"
-e CONNECT_STATUS_STORAGE_TOPIC="quickstart-status"
-e CONNECT_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter"
-e CONNECT_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter"
-e CONNECT_INTERNAL_KEY_CONVERTER="org.apache.kafka.connect.json.JsonConverter"
-e CONNECT_INTERNAL_VALUE_CONVERTER="org.apache.kafka.connect.json.JsonConverter"
-e CONNECT_REST_ADVERTISED_HOST_NAME="localhost"
-e CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR=1
-e CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR=1
-e CONNECT_STATUS_STORAGE_REPLICATION_FACTOR=1```
Config of Kafka Debezium MySQL Connector
我使用Kafka Debezium MySQL连接器的所有默认配置
最好的方法是使用Avro Serialization重新配置连接器,以减小消息的大小并跟踪架构更改。这会给你带来很大的进步。
Avro二进制格式紧凑高效。Avro模式使它可以确保每个记录具有正确的结构。Avro模式进化机制使模式能够进化是对于动态生成每个记录的模式,以匹配数据库表的结构已更改。
要查看在没有Avro和架构注册表设置的情况下,从每条消息中删除架构将产生的差异,请将下面的设置设置为false
。不要在生产中以这种方式使用它。
默认行为是JSON转换器包含记录的消息模式,这使得每个记录都非常详细。如果希望使用JSON序列化记录,请考虑设置
key.converter.schemas.enable
的以下连接器配置属性:value.converter.schemas.enable
false
。将这些属性设置为CCD_6将从每个记录中排除详细的架构信息。
另请参阅:"Kafka Connect Deep Dive——转换器和序列化解释";