// This module is included in:
//
// assembly-overview.adoc

[id="configuration-points-listeners-{context}"]
= Configuring listeners to connect to Kafka brokers

[role="_abstract"]
Listeners are used to connect to Kafka brokers.
Strimzi provides a generic `GenericKafkaListener` schema with properties to configure listeners through the `Kafka` resource.

The `GenericKafkaListener` provides a flexible approach to listener configuration.
You can specify properties to configure _internal_ listeners for connecting within the Kubernetes cluster, or _external_ listeners for connecting outside the Kubernetes cluster.

Each listener is xref:proc-config-kafka-{context}[defined as an array in the `Kafka` resource].
You can configure as many listeners as required, as long as their names and ports are unique.

You might want to configure multiple external listeners, for example, to handle access from networks that require different authentication mechanisms.
Or you might need to join your Kubernetes network to an outside network.
In which case, you can configure internal listeners (using the `useServiceDnsDomain` property) so that the Kubernetes service DNS domain (typically `.cluster.local`) is not used.

For more information on the configuration options available for listeners,
see the link:{BookURLUsing}#type-GenericKafkaListener-reference[`GenericKafkaListener` schema reference].

.Configuring listeners to secure access to Kafka brokers
You can configure listeners for secure connection using authentication.
For more information, see xref:assembly-securing-kafka-str[Securing access to Kafka brokers].

.Configuring external listeners for client access outside Kubernetes
You can configure external listeners for client access outside a Kubernetes environment using a specified connection mechanism, such as a loadbalancer.
For more information on the configuration options for connecting an external client, see xref:assembly-accessing-kafka-outside-cluster-str[Accessing Kafka from external clients outside of the Kubernetes cluster].

.Listener certificates
You can provide your own server certificates, called _Kafka listener certificates_, for TLS listeners or external listeners which have TLS encryption enabled.
For more information, see xref:kafka-listener-certificates-str[Kafka listener certificates].

NOTE: If you scale your Kafka cluster while using external listeners, it might trigger a rolling update of all Kafka brokers. This depends on the configuration. 
