我已经在Sping Boot 中使用SpringCloudStreams实现了KStreams。我已经准备好从一个有20个分区的主题开始写一个有相同数量分区的主题。我有2个运行中的Pod。处理的平均记录是每分钟500 k。
我增加了10个并发,但性能仍然是一样的。我如何使用并发来提高性能?
spring:
cloud:
config:
function:
definition: RiskProcessor1
stream:
bindings:
RiskProcessor1-in-0:
destination: ******
consumer:
concurrency: 10
kafka:
streams:
binder:
brokers: kaas-int.nam.nsroot.net:9093
functions:
RiskProcessor1:
applicationId: RiskProcessor1_development
configuration:
commit.interval.ms: 1000
security.protocol: SSL
default:
deserialization:
exception:
handler: org.apache.kafka.streams.errors.LogAndContinueExceptionHandler
schema:
registry:
url: *****:9081
default:
consumer:
keySerde: ****
valueSerde: ****
producer:
keySerde: ****
valueSerde: ****
字符串
1条答案
按热度按时间wsewodh21#
一个大致的轮廓:
1.找出你在哪里达到了阈值,内存,CPU或IO。如果有一个阈值突破检查选项,以克服它通过升级硬件。
1.找出你的硬件可以支持的线程数。如果超出了硬件的能力,增加线程是没有意义的。
由于您有20个分区,因此最多可以有20个并发消费者。
如果您使用适当的序列化,如Protocol Buffers或Avro,高数据流量将更具性能。