Apache Kafka listenersΒΆ
Charmed Apache Kafka comes with a set of listeners that can be enabled for inter-broker and broker-controller communication, and for client communication.
Internal listeners are used for internal traffic and exchange of information between Apache Kafka brokers and controllers. These will be created by default.
Client listeners are used for external clients, and are optionally enabled based on the relations created on particular charm endpoints. Each listener is characterised by a specific port, scope and protocol.
In the following table, we summarise the protocols, the port and the relation that each listener is
bound to. Note that based on whether a certificates relation is present, one of two mutually
exclusive types of listeners can be opened.
Usage |
Driving endpoints |
Protocol |
Port |
Scope |
|---|---|---|---|---|
Broker |
|
SASL_SSL |
|
internal-only |
Controller |
|
SASL_SSL |
|
internal-only |
Broker |
|
SASL_PLAINTEXT |
|
client |
Broker |
|
SASL_SSL |
|
client |
Broker |
|
SSL |
|
client |
Broker |
|
SSL |
|
client |
Broker |
|
SASL_PLAINTEXT |
|
client |
Broker |
|
SASL_SSL |
|
client |
Internal (broker-controller and inter-broker) communications always use SASL_SSL. When no
peer-certificates relation is present, the charm uses auto-generated self-signed certificates
instead of certificates provided by a TLS Certificate Provider charm.
Note
Additional listeners can be defined using the extra-listeners configuration option,
which allocates a distinct port for each authentication scheme starting from a configurable
base port (offset by 20001-50000).
See the configurations reference
for details.