...
All Kafka clusters should have a cluster id (i.e. it should not be optional).
- No additional work should be required of users when creating or upgrading a Kafka cluster (e.g. no additional mandatory configs).
The cluster id should be unique and immutable so that external tools can associate data to a particular cluster.
The cluster id should be available via broker metrics so that it's easily exported to monitoring tools with existing metric reporters (e.g. JmxReporter).
The cluster id should be exposed to client and broker metric reporters so that they can tag, categorise or namespace metrics based on the cluster id.
Client interceptors should have access to the cluster id so that they can associate it with the message metadata being tracked.
Client serializers should have access to the cluster id so that they can include it in the message, if desired (e.g. as part of a standard message header).
...
package org.apache.kafka.common;
class ClusterResource {
private final String clusterId;
public ClusterResource(String clusterId) {
this.clusterId = clusterId;
}
public String clusterId() {
return clusterId;
}
}
package org.apache.kafka.common;
interface ClusterResourceListener {
void onUpdate(ClusterResource cluster);
}
...