@@ -881,7 +881,6 @@ object DynamicListenerConfig {
881
881
*/
882
882
val ReconfigurableConfigs = Set (
883
883
// Listener configs
884
- SocketServerConfigs .ADVERTISED_LISTENERS_CONFIG ,
885
884
SocketServerConfigs .LISTENERS_CONFIG ,
886
885
SocketServerConfigs .LISTENER_SECURITY_PROTOCOL_MAP_CONFIG ,
887
886
@@ -967,37 +966,13 @@ class DynamicListenerConfig(server: KafkaBroker) extends BrokerReconfigurable wi
967
966
DynamicListenerConfig .ReconfigurableConfigs
968
967
}
969
968
970
- private def listenerRegistrationsAltered (
971
- oldAdvertisedListeners : Map [ListenerName , EndPoint ],
972
- newAdvertisedListeners : Map [ListenerName , EndPoint ]
973
- ): Boolean = {
974
- if (oldAdvertisedListeners.size != newAdvertisedListeners.size) return true
975
- oldAdvertisedListeners.foreachEntry {
976
- case (oldListenerName, oldEndpoint) =>
977
- newAdvertisedListeners.get(oldListenerName) match {
978
- case None => return true
979
- case Some (newEndpoint) => if (! newEndpoint.equals(oldEndpoint)) {
980
- return true
981
- }
982
- }
983
- }
984
- false
985
- }
986
-
987
- private def verifyListenerRegistrationAlterationSupported (): Unit = {
988
- if (! server.config.requiresZookeeper) {
989
- throw new ConfigException (" Advertised listeners cannot be altered when using a " +
990
- " Raft-based metadata quorum." )
991
- }
992
- }
993
-
994
969
def validateReconfiguration (newConfig : KafkaConfig ): Unit = {
995
970
val oldConfig = server.config
996
971
val newListeners = listenersToMap(newConfig.listeners)
997
- val newAdvertisedListeners = listenersToMap(newConfig .effectiveAdvertisedBrokerListeners)
972
+ val oldAdvertisedListeners = listenersToMap(oldConfig .effectiveAdvertisedBrokerListeners)
998
973
val oldListeners = listenersToMap(oldConfig.listeners)
999
- if (! newAdvertisedListeners .keySet.subsetOf(newListeners.keySet))
1000
- throw new ConfigException (s " Advertised listeners ' $newAdvertisedListeners ' must be a subset of listeners ' $newListeners' " )
974
+ if (! oldAdvertisedListeners .keySet.subsetOf(newListeners.keySet))
975
+ throw new ConfigException (s " Advertised listeners ' $oldAdvertisedListeners ' must be a subset of listeners ' $newListeners' " )
1001
976
if (! newListeners.keySet.subsetOf(newConfig.effectiveListenerSecurityProtocolMap.keySet))
1002
977
throw new ConfigException (s " Listeners ' $newListeners' must be subset of listener map ' ${newConfig.effectiveListenerSecurityProtocolMap}' " )
1003
978
newListeners.keySet.intersect(oldListeners.keySet).foreach { listenerName =>
@@ -1013,15 +988,8 @@ class DynamicListenerConfig(server: KafkaBroker) extends BrokerReconfigurable wi
1013
988
if (oldConfig.effectiveListenerSecurityProtocolMap(listenerName) != newConfig.effectiveListenerSecurityProtocolMap(listenerName))
1014
989
throw new ConfigException (s " Security protocol cannot be updated for existing listener $listenerName" )
1015
990
}
1016
- if (! newAdvertisedListeners .contains(newConfig.interBrokerListenerName))
991
+ if (! oldAdvertisedListeners .contains(newConfig.interBrokerListenerName))
1017
992
throw new ConfigException (s " Advertised listener must be specified for inter-broker listener ${newConfig.interBrokerListenerName}" )
1018
-
1019
- // Currently, we do not support adding or removing listeners when in KRaft mode.
1020
- // However, we support changing other listener configurations (max connections, etc.)
1021
- if (listenerRegistrationsAltered(listenersToMap(oldConfig.effectiveAdvertisedBrokerListeners),
1022
- listenersToMap(newConfig.effectiveAdvertisedBrokerListeners))) {
1023
- verifyListenerRegistrationAlterationSupported()
1024
- }
1025
993
}
1026
994
1027
995
def reconfigure (oldConfig : KafkaConfig , newConfig : KafkaConfig ): Unit = {
@@ -1036,13 +1004,6 @@ class DynamicListenerConfig(server: KafkaBroker) extends BrokerReconfigurable wi
1036
1004
if (listenersRemoved.nonEmpty) server.socketServer.removeListeners(listenersRemoved)
1037
1005
if (listenersAdded.nonEmpty) server.socketServer.addListeners(listenersAdded)
1038
1006
}
1039
- if (listenerRegistrationsAltered(listenersToMap(oldConfig.effectiveAdvertisedBrokerListeners),
1040
- listenersToMap(newConfig.effectiveAdvertisedBrokerListeners))) {
1041
- verifyListenerRegistrationAlterationSupported()
1042
- server match {
1043
- case _ => throw new RuntimeException (" Unable to handle reconfigure" )
1044
- }
1045
- }
1046
1007
}
1047
1008
1048
1009
private def listenersToMap (listeners : Seq [EndPoint ]): Map [ListenerName , EndPoint ] =
0 commit comments