我们有2500万条记录是关于卡夫卡的。
-
主题是有24个分区和24个使用者。
-
-
复制因子为2。
-
目前,在负载测试期间,消耗和处理1百万,平均需要40分钟。但是,我们要在20到30分钟内处理2500万条记录。
代理配置:
background.threads = 10
num.network.threads = 7
num.io.threads = 8
Set replica.lag.time.max.ms = 500
Set replica.lag.max.messages = 4
Set log.flush.interval.ms to default value as per logs
Used G1 collector instead of MarkSweepGC
Changed Xms to 4G and Xmx to 4G
使用者配置:
我们使用Java消费者API来消费消息。我们将交换设置为1,并使用200个线程来处理使用者内的数据。在消费者内部,我们接收消息并点击Redis、MaprDB来执行一些业务逻辑。逻辑完成后,我们将使用Kafka Commit Sync提交消息。
每个消费者都使用-xms4g和-xmx4g运行。为了提高读取吞吐量,我们还需要考虑哪些方面?