mirror of https://github.com/apache/kafka.git
KAFKA-18637: Fix max connections per ip and override reconfigurations (#19099)
Reviewers: Christo Lolov <lolovc@amazon.com>, TengYao Chi <kitingiao@gmail.com>, Ken Huang <s7133700@gmail.com>
This commit is contained in:
parent
75260cf92c
commit
832dfa36da
|
@ -309,8 +309,8 @@ class KafkaConfig private(doLog: Boolean, val props: util.Map[_, _])
|
|||
val socketReceiveBufferBytes = getInt(SocketServerConfigs.SOCKET_RECEIVE_BUFFER_BYTES_CONFIG)
|
||||
val socketRequestMaxBytes = getInt(SocketServerConfigs.SOCKET_REQUEST_MAX_BYTES_CONFIG)
|
||||
val socketListenBacklogSize = getInt(SocketServerConfigs.SOCKET_LISTEN_BACKLOG_SIZE_CONFIG)
|
||||
val maxConnectionsPerIp = getInt(SocketServerConfigs.MAX_CONNECTIONS_PER_IP_CONFIG)
|
||||
val maxConnectionsPerIpOverrides: Map[String, Int] =
|
||||
def maxConnectionsPerIp = getInt(SocketServerConfigs.MAX_CONNECTIONS_PER_IP_CONFIG)
|
||||
def maxConnectionsPerIpOverrides: Map[String, Int] =
|
||||
getMap(SocketServerConfigs.MAX_CONNECTIONS_PER_IP_OVERRIDES_CONFIG, getString(SocketServerConfigs.MAX_CONNECTIONS_PER_IP_OVERRIDES_CONFIG)).map { case (k, v) => (k, v.toInt)}
|
||||
def maxConnections = getInt(SocketServerConfigs.MAX_CONNECTIONS_CONFIG)
|
||||
def maxConnectionCreationRate = getInt(SocketServerConfigs.MAX_CONNECTION_CREATION_RATE_CONFIG)
|
||||
|
|
|
@ -482,6 +482,30 @@ class DynamicBrokerReconfigurationTest extends QuorumTestHarness with SaslSetup
|
|||
waitForAuthenticationFailure(producerBuilder.keyStoreProps(sslProperties1))
|
||||
}
|
||||
|
||||
@ParameterizedTest(name = TestInfoUtils.TestWithParameterizedQuorumAndGroupProtocolNames)
|
||||
@MethodSource(Array("getTestQuorumAndGroupProtocolParametersAll"))
|
||||
def testSocketServerConfigTest(quorum: String, groupProtocol: String): Unit = {
|
||||
val updatedMaxConnections = "20"
|
||||
val connectionsIpsOverride = "1.2.3.4:1234,1.2.4.5:2345"
|
||||
val properties = new Properties()
|
||||
properties.setProperty(SocketServerConfigs.MAX_CONNECTIONS_PER_IP_CONFIG, updatedMaxConnections)
|
||||
properties.setProperty(SocketServerConfigs.MAX_CONNECTIONS_PER_IP_OVERRIDES_CONFIG, connectionsIpsOverride)
|
||||
|
||||
TestUtils.incrementalAlterConfigs(servers, adminClients.head, properties, true)
|
||||
|
||||
servers.foreach(_.shutdown())
|
||||
servers.foreach(_.awaitShutdown())
|
||||
servers.foreach(_.startup())
|
||||
|
||||
servers.foreach { broker =>
|
||||
assertEquals(updatedMaxConnections, broker.config.originals()
|
||||
.get(SocketServerConfigs.MAX_CONNECTIONS_PER_IP_CONFIG).toString)
|
||||
|
||||
assertEquals(connectionsIpsOverride, broker.config.originals()
|
||||
.get(SocketServerConfigs.MAX_CONNECTIONS_PER_IP_OVERRIDES_CONFIG).toString)
|
||||
}
|
||||
}
|
||||
|
||||
@ParameterizedTest(name = TestInfoUtils.TestWithParameterizedQuorumAndGroupProtocolNames)
|
||||
@MethodSource(Array("getTestQuorumAndGroupProtocolParametersAll"))
|
||||
def testLogCleanerConfig(quorum: String, groupProtocol: String): Unit = {
|
||||
|
|
Loading…
Reference in New Issue