A listener represents hostname-port or IP-port combinations that connect to TCP sockets. Listeners need at least as many ports as backend brokers if you use port mapping in a Forward to Virtual Cluster policy. For SNI routing, you can route all brokers using a listener with only one port. Ports can be expressed as a single port or range. Addresses can be IPv4, IPv6, or hostnames.
A listener can have policies that enforce TLS certificates and perform SNI routing. The listener runs at Layer 4 of the network stack. In Kong Event Gateway, listeners first take in the connection and then route the TCP connection to a virtual cluster based on conditions defined in listener policies.
flowchart LR
A[Kafka
client]
B[Listener
(TCP socket)
+ listener policies]
C@{ shape: processes, label: "Virtual clusters
+ consume, produce,
and cluster policies"}
D[Backend
cluster]
E[Kafka
cluster]
A --> B
subgraph id1 [Event Gateway]
B --> C
C --> D
end
D --> E
style B stroke:#86e2cc
style id1 rx:7,ry:7
Listeners can have one or more policies that define how the TCP connection is handled:
- TLS Server Policy: Enforces encryption, provides a certificate, and can use SNI to route connections by hostname.
- Forward to Virtual Cluster Policy: Routes the connection to a specific virtual cluster. Only one forward policy is allowed per listener.