我正在运行一个有三个子拓扑的Kafka流应用程序。活动阶段大致如下:
stream主题AselectKey和重新划分主题A to主题Bstream主题Bforeach主题B到主题C Producerstream主题Cto主题D主题A、B和C都是物化的,这意味着如果每个主题有40个分区,我的最大并行性是120。
起初,我运行5个流应用程序,每个线程有8个线程。有了这个设置,我的表现就不一致了。似乎有些共享相同线程的子拓扑比其他线程更渴望CPU,过了一段时间,我会得到这样的错误:Member [client_id] in group [consumer_group] has failed, removing it from the group (kafka.coordinator.group.GroupCoordinator)。一切都会得到重新平衡,这可能导致性能下降,直到下一次失败和再平衡。
我的问题如下:
发布于 2018-07-06 02:01:26
topic元数据以将其输入正确的任务。几项一般性意见:
max.poll.interval.ms配置,以避免使用者退出组。max.poll.records,以减少每个poll()调用的记录,从而缩短对poll()的两个连续调用之间的时间。max.poll.records并不意味着增加网络/代理通信--如果单个获取请求返回比max.poll.records配置更多的记录,数据只是在使用者内部缓冲,下一个poll()将从缓冲的数据中得到服务,从而避免代理往返。https://stackoverflow.com/questions/51201092
复制相似问题