Debezium很慢,如何改进



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.enablefalse。将这些属性设置为CCD_6将从每个记录中排除详细的架构信息。

另请参阅:"Kafka Connect Deep Dive——转换器和序列化解释";

相关内容

  • 没有找到相关文章

最新更新