postgresql—从kafka到sql server的kafka消息流的高延迟

j1dl9f46  于 2021-06-04  发布在  Kafka
关注(0)|答案(0)|浏览(284)

我们建立了一个Kafka建筑,由3名Kafka经纪人和6名工人组成。我们有大约50个主题,代表我的postgresql中的表的数量。我们的目标是使用kafka将每个表中的消息从postgresql复制到sqlserver。从postgresql到kafka,我们使用debezium,从kafka到sqlserver使用jdbcsink。
当我们运行架构时,我们担心延迟。当一条新消息在postgresql中显示时,同一条消息在sqlserver中显示大约需要40秒。如文档所示,我们使用 upsert 因为每个消息都有一个键,其中的键是来自源表的pk。
下面是我们的接收器配置示例:

'Content-Type:application/json' -d '{"name" :"sqlservercon_'$topic_name'",
    "config":{"connector.class":"io.confluent.connect.jdbc.JdbcSinkConnector",
            "topics":"'$table'",
            "connection.url":"XXX",
            "connection.user":"XXX",
            "connection.password":"XXX",
            "transforms":"unwrap",
            "transforms.unwrap.type": "io.debezium.transforms.ExtractNewRecordState",
            "transforms.unwrap.drop.tombstones": "false",
            "delete.handling.mode":"drop",
            "auto.create":"true",
            "auto.evolve":"true",
            "insert.mode":"upsert",
            "pk.fields":" '$pk'",
            "pk.mode":"record_key",
            "delete.enabled":"true",
            "batch.size":"100000",
            "destination.table.format":"XXX.dbo.'$table'"

更新:
我们又增加了2个工人,每个工人的复制系数为3。另外6个worker的复制因子与前两个相同,没有提高性能。我现在监视我的cpu实用程序是65%-66%,内存是13.7gb,而不是15.7gb。我将每个主题的保留字节设置为数据库中当前大小的2倍或12小时保留时间。我的环境包括两个核心cpu,18 gb ram和500 gb磁盘,我们认为在这种情况下是安全可行的。
在运行接收器之前,当我们部署源连接器(在本例中是debezium)时,它只在8个工作线程中的一个上运行。但当我们一个接一个地运行Flume时,它们在每个工人中分配运行。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题