java - 如何解决 Kafka Broker 中的网络和内存问题?

标签 java networking apache-kafka heap-memory

使用 kafka 时,我间歇性地遇到两个与网络相关的错误。

1. Error in fetch kafka.server.replicafetcherthread$fetchrequest connection to broker was disconnected before the reponse was read

2. Error in fetch kafka.server.replicafetcherthread$fetchrequest Connection to broker1 (id: 1 rack: null) failed

[配置环境]

Brokers: 5 / server.properties: "kafka_manager_heap_s=1g", "kafka_manager_heap_x=1g", "offsets.commit.required.acks=1","offsets.commit.timeout.ms=5000", Most settings are the default.
Zookeepers: 3
Servers: 5
Kafka:0.10.1.2 
Zookeeper: 3.4.6

这两个错误都是由网络通信丢失引起的。

如果发生这些错误,Kafka将多次扩展或收缩ISR分区。

expanding-ex) INFO Partition [my-topic,7] on broker 1: Expanding ISR for partition [my-topic,7] from 1,2 to 1,2,3
shrinking-ex) INFO Partition [my-topic,7] on broker 1: Shrinking ISR for partition [my-topic,7] from 1,2,3 to 1,2

我知道这些错误是由网络问题引起的,但我不确定为什么会发生网络中断。

如果网络断开仍然存在,我会收到以下附加错误 : 处理请求时出错(topics=null} java.lang.OutOfMemoryError: Java 堆空间

我想知道是什么原因导致这些问题以及如何改进?

最佳答案

网络错误告诉您其中一个代理没有运行,这意味着它无法连接到它。根据经验,您可以分配的最小堆大小是 2Gb。

关于java - 如何解决 Kafka Broker 中的网络和内存问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58537311/

相关文章:

java - Kafka dsl api 开发人员指南中的问题

mysql - Kafka 到数据库数据流水线

java - Java 6 中 Normalizer.getClass(c) 方法的替换

java - 将二进制 1 和 0 的整数(或字符串)数组转换为 Java 中的 alpha 等价物

java - 如何复制数据库结果集

c# - 如何使用c#计算带宽

java - 使用Spring云consul配置可以共享配置吗?

c++ - htonl 不使用网络相关 header

c++ - SFML 网络错误 : undefined references des when linking

java - Kafka 中的动态流拓扑