@@ -47,7 +47,7 @@ import org.apache.kafka.server.ProcessRole
47
47
import org .apache .kafka .server .authorizer .Authorizer
48
48
import org .apache .kafka .server .common .{MetadataVersion , MetadataVersionValidator }
49
49
import org .apache .kafka .server .common .MetadataVersion ._
50
- import org .apache .kafka .server .config .{DelegationTokenManagerConfigs , KRaftConfigs , ServerConfigs , QuotaConfigs , ReplicationConfigs , ServerLogConfigs , ZkConfigs }
50
+ import org .apache .kafka .server .config .{DelegationTokenManagerConfigs , KRaftConfigs , ServerConfigs , QuotaConfigs , ReplicationConfigs , ServerLogConfigs , ZkConfigs , ShareGroupConfigs }
51
51
import org .apache .kafka .server .log .remote .storage .RemoteLogManagerConfig
52
52
import org .apache .kafka .server .metrics .MetricConfigs
53
53
import org .apache .kafka .server .record .BrokerCompressionType
@@ -292,6 +292,23 @@ object KafkaConfig {
292
292
.define(GroupCoordinatorConfig .CONSUMER_GROUP_ASSIGNORS_CONFIG , LIST , GroupCoordinatorConfig .CONSUMER_GROUP_ASSIGNORS_DEFAULT , null , MEDIUM , GroupCoordinatorConfig .CONSUMER_GROUP_ASSIGNORS_DOC )
293
293
.define(GroupCoordinatorConfig .CONSUMER_GROUP_MIGRATION_POLICY_CONFIG , STRING , GroupCoordinatorConfig .CONSUMER_GROUP_MIGRATION_POLICY_DEFAULT , CaseInsensitiveValidString .in(Utils .enumOptions(classOf [ConsumerGroupMigrationPolicy ]): _* ), MEDIUM , GroupCoordinatorConfig .CONSUMER_GROUP_MIGRATION_POLICY_DOC )
294
294
295
+ /** Share Group Configurations **/
296
+ // Internal configuration used by integration and system tests.
297
+ .defineInternal(ShareGroupConfigs .SHARE_GROUP_ENABLE_CONFIG , BOOLEAN , ShareGroupConfigs .SHARE_GROUP_ENABLE_DEFAULT , null , MEDIUM , ShareGroupConfigs .SHARE_GROUP_ENABLE_DOC )
298
+ .define(ShareGroupConfigs .SHARE_GROUP_DELIVERY_COUNT_LIMIT_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_DELIVERY_COUNT_LIMIT_DEFAULT , between(2 , 10 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_DELIVERY_COUNT_LIMIT_DOC )
299
+ .define(ShareGroupConfigs .SHARE_GROUP_RECORD_LOCK_DURATION_MS_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_RECORD_LOCK_DURATION_MS_DEFAULT , atLeast(1 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_RECORD_LOCK_DURATION_MS_DOC )
300
+ .define(ShareGroupConfigs .SHARE_GROUP_MIN_RECORD_LOCK_DURATION_MS_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_MIN_RECORD_LOCK_DURATION_MS_DEFAULT , atLeast(1 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_MIN_RECORD_LOCK_DURATION_MS_DOC )
301
+ .define(ShareGroupConfigs .SHARE_GROUP_MAX_RECORD_LOCK_DURATION_MS_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_MAX_RECORD_LOCK_DURATION_MS_DEFAULT , atLeast(1 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_MAX_RECORD_LOCK_DURATION_MS_DOC )
302
+ .define(ShareGroupConfigs .SHARE_GROUP_PARTITION_MAX_RECORD_LOCKS_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_PARTITION_MAX_RECORD_LOCKS_DEFAULT , between(100 , 10000 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_PARTITION_MAX_RECORD_LOCKS_DOC )
303
+ .define(ShareGroupConfigs .SHARE_GROUP_SESSION_TIMEOUT_MS_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_SESSION_TIMEOUT_MS_DEFAULT , atLeast(1 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_SESSION_TIMEOUT_MS_DOC )
304
+ .define(ShareGroupConfigs .SHARE_GROUP_MIN_SESSION_TIMEOUT_MS_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_MIN_SESSION_TIMEOUT_MS_DEFAULT , atLeast(1 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_MIN_SESSION_TIMEOUT_MS_DOC )
305
+ .define(ShareGroupConfigs .SHARE_GROUP_MAX_SESSION_TIMEOUT_MS_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_MAX_SESSION_TIMEOUT_MS_DEFAULT , atLeast(1 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_MAX_SESSION_TIMEOUT_MS_DOC )
306
+ .define(ShareGroupConfigs .SHARE_GROUP_HEARTBEAT_INTERVAL_MS_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_HEARTBEAT_INTERVAL_MS_DEFAULT , atLeast(1 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_HEARTBEAT_INTERVAL_MS_DOC )
307
+ .define(ShareGroupConfigs .SHARE_GROUP_MIN_HEARTBEAT_INTERVAL_MS_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_MIN_HEARTBEAT_INTERVAL_MS_DEFAULT , atLeast(1 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_MIN_HEARTBEAT_INTERVAL_MS_DOC )
308
+ .define(ShareGroupConfigs .SHARE_GROUP_MAX_HEARTBEAT_INTERVAL_MS_CONFIG , INT , ShareGroupConfigs .SHARE_GROUP_MAX_HEARTBEAT_INTERVAL_MS_DEFAULT , atLeast(1 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_MAX_HEARTBEAT_INTERVAL_MS_DOC )
309
+ .define(ShareGroupConfigs .SHARE_GROUP_MAX_GROUPS_CONFIG , SHORT , ShareGroupConfigs .SHARE_GROUP_MAX_GROUPS_DEFAULT , between(1 , 100 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_MAX_GROUPS_DOC )
310
+ .define(ShareGroupConfigs .SHARE_GROUP_MAX_SIZE_CONFIG , SHORT , ShareGroupConfigs .SHARE_GROUP_MAX_SIZE_DEFAULT , between(10 , 1000 ), MEDIUM , ShareGroupConfigs .SHARE_GROUP_MAX_SIZE_DOC )
311
+
295
312
/** ********* Offset management configuration ***********/
296
313
.define(GroupCoordinatorConfig .OFFSET_METADATA_MAX_SIZE_CONFIG , INT , GroupCoordinatorConfig .OFFSET_METADATA_MAX_SIZE_DEFAULT , HIGH , GroupCoordinatorConfig .OFFSET_METADATA_MAX_SIZE_DOC )
297
314
.define(GroupCoordinatorConfig .OFFSETS_LOAD_BUFFER_SIZE_CONFIG , INT , GroupCoordinatorConfig .OFFSETS_LOAD_BUFFER_SIZE_DEFAULT , atLeast(1 ), HIGH , GroupCoordinatorConfig .OFFSETS_LOAD_BUFFER_SIZE_DOC )
@@ -960,6 +977,22 @@ class KafkaConfig private(doLog: Boolean, val props: java.util.Map[_, _], dynami
960
977
val consumerGroupAssignors = getConfiguredInstances(GroupCoordinatorConfig .CONSUMER_GROUP_ASSIGNORS_CONFIG , classOf [ConsumerGroupPartitionAssignor ])
961
978
val consumerGroupMigrationPolicy = ConsumerGroupMigrationPolicy .parse(getString(GroupCoordinatorConfig .CONSUMER_GROUP_MIGRATION_POLICY_CONFIG ))
962
979
980
+ /** Share group configuration **/
981
+ val isShareGroupEnabled = getBoolean(ShareGroupConfigs .SHARE_GROUP_ENABLE_CONFIG )
982
+ val shareGroupPartitionMaxRecordLocks = getInt(ShareGroupConfigs .SHARE_GROUP_PARTITION_MAX_RECORD_LOCKS_CONFIG )
983
+ val shareGroupDeliveryCountLimit = getInt(ShareGroupConfigs .SHARE_GROUP_DELIVERY_COUNT_LIMIT_CONFIG )
984
+ val shareGroupMaxGroups = getShort(ShareGroupConfigs .SHARE_GROUP_MAX_GROUPS_CONFIG )
985
+ val shareGroupMaxSize = getShort(ShareGroupConfigs .SHARE_GROUP_MAX_SIZE_CONFIG )
986
+ val shareGroupSessionTimeoutMs = getInt(ShareGroupConfigs .SHARE_GROUP_SESSION_TIMEOUT_MS_CONFIG )
987
+ val shareGroupMinSessionTimeoutMs = getInt(ShareGroupConfigs .SHARE_GROUP_MIN_SESSION_TIMEOUT_MS_CONFIG )
988
+ val shareGroupMaxSessionTimeoutMs = getInt(ShareGroupConfigs .SHARE_GROUP_MAX_SESSION_TIMEOUT_MS_CONFIG )
989
+ val shareGroupHeartbeatIntervalMs = getInt(ShareGroupConfigs .SHARE_GROUP_HEARTBEAT_INTERVAL_MS_CONFIG )
990
+ val shareGroupMinHeartbeatIntervalMs = getInt(ShareGroupConfigs .SHARE_GROUP_MIN_HEARTBEAT_INTERVAL_MS_CONFIG )
991
+ val shareGroupMaxHeartbeatIntervalMs = getInt(ShareGroupConfigs .SHARE_GROUP_MAX_HEARTBEAT_INTERVAL_MS_CONFIG )
992
+ val shareGroupRecordLockDurationMs = getInt(ShareGroupConfigs .SHARE_GROUP_RECORD_LOCK_DURATION_MS_CONFIG )
993
+ val shareGroupMaxRecordLockDurationMs = getInt(ShareGroupConfigs .SHARE_GROUP_MAX_RECORD_LOCK_DURATION_MS_CONFIG )
994
+ val shareGroupMinRecordLockDurationMs = getInt(ShareGroupConfigs .SHARE_GROUP_MIN_RECORD_LOCK_DURATION_MS_CONFIG )
995
+
963
996
/** ********* Offset management configuration ***********/
964
997
val offsetMetadataMaxSize = getInt(GroupCoordinatorConfig .OFFSET_METADATA_MAX_SIZE_CONFIG )
965
998
val offsetsLoadBufferSize = getInt(GroupCoordinatorConfig .OFFSETS_LOAD_BUFFER_SIZE_CONFIG )
@@ -1457,6 +1490,36 @@ class KafkaConfig private(doLog: Boolean, val props: java.util.Map[_, _], dynami
1457
1490
s " ${GroupCoordinatorConfig .CONSUMER_GROUP_SESSION_TIMEOUT_MS_CONFIG } must be less than or equals " +
1458
1491
s " to ${GroupCoordinatorConfig .CONSUMER_GROUP_MAX_SESSION_TIMEOUT_MS_CONFIG }" )
1459
1492
1493
+ require(shareGroupMaxHeartbeatIntervalMs >= shareGroupMinHeartbeatIntervalMs,
1494
+ s " ${ShareGroupConfigs .SHARE_GROUP_MAX_HEARTBEAT_INTERVAL_MS_CONFIG } must be greater than or equals " +
1495
+ s " to ${ShareGroupConfigs .SHARE_GROUP_MIN_HEARTBEAT_INTERVAL_MS_CONFIG }" )
1496
+ require(shareGroupHeartbeatIntervalMs >= shareGroupMinHeartbeatIntervalMs,
1497
+ s " ${ShareGroupConfigs .SHARE_GROUP_HEARTBEAT_INTERVAL_MS_CONFIG } must be greater than or equals " +
1498
+ s " to ${ShareGroupConfigs .SHARE_GROUP_MIN_HEARTBEAT_INTERVAL_MS_CONFIG }" )
1499
+ require(shareGroupHeartbeatIntervalMs <= shareGroupMaxHeartbeatIntervalMs,
1500
+ s " ${ShareGroupConfigs .SHARE_GROUP_HEARTBEAT_INTERVAL_MS_CONFIG } must be less than or equals " +
1501
+ s " to ${ShareGroupConfigs .SHARE_GROUP_MAX_HEARTBEAT_INTERVAL_MS_CONFIG }" )
1502
+
1503
+ require(shareGroupMaxSessionTimeoutMs >= shareGroupMinSessionTimeoutMs,
1504
+ s " ${ShareGroupConfigs .SHARE_GROUP_MAX_SESSION_TIMEOUT_MS_CONFIG } must be greater than or equals " +
1505
+ s " to ${ShareGroupConfigs .SHARE_GROUP_MIN_SESSION_TIMEOUT_MS_CONFIG }" )
1506
+ require(shareGroupSessionTimeoutMs >= shareGroupMinSessionTimeoutMs,
1507
+ s " ${ShareGroupConfigs .SHARE_GROUP_SESSION_TIMEOUT_MS_CONFIG } must be greater than or equals " +
1508
+ s " to ${ShareGroupConfigs .SHARE_GROUP_MIN_SESSION_TIMEOUT_MS_CONFIG }" )
1509
+ require(shareGroupSessionTimeoutMs <= shareGroupMaxSessionTimeoutMs,
1510
+ s " ${ShareGroupConfigs .SHARE_GROUP_SESSION_TIMEOUT_MS_CONFIG } must be less than or equals " +
1511
+ s " to ${ShareGroupConfigs .SHARE_GROUP_MAX_SESSION_TIMEOUT_MS_CONFIG }" )
1512
+
1513
+ require(shareGroupMaxRecordLockDurationMs >= shareGroupMinRecordLockDurationMs,
1514
+ s " ${ShareGroupConfigs .SHARE_GROUP_MAX_RECORD_LOCK_DURATION_MS_CONFIG } must be greater than or equals " +
1515
+ s " to ${ShareGroupConfigs .SHARE_GROUP_MIN_RECORD_LOCK_DURATION_MS_CONFIG }" )
1516
+ require(shareGroupRecordLockDurationMs >= shareGroupMinRecordLockDurationMs,
1517
+ s " ${ShareGroupConfigs .SHARE_GROUP_RECORD_LOCK_DURATION_MS_CONFIG } must be greater than or equals " +
1518
+ s " to ${ShareGroupConfigs .SHARE_GROUP_MIN_RECORD_LOCK_DURATION_MS_CONFIG }" )
1519
+ require(shareGroupMaxRecordLockDurationMs >= shareGroupRecordLockDurationMs,
1520
+ s " ${ShareGroupConfigs .SHARE_GROUP_MAX_RECORD_LOCK_DURATION_MS_CONFIG } must be greater than or equals " +
1521
+ s " to ${ShareGroupConfigs .SHARE_GROUP_RECORD_LOCK_DURATION_MS_CONFIG }" )
1522
+
1460
1523
if (originals.containsKey(GroupCoordinatorConfig .OFFSET_COMMIT_REQUIRED_ACKS_CONFIG )) {
1461
1524
warn(s " ${GroupCoordinatorConfig .OFFSET_COMMIT_REQUIRED_ACKS_CONFIG } is deprecated and it will be removed in Apache Kafka 4.0. " )
1462
1525
}
0 commit comments