CNAME records configuration
When you use Kafka’s built-in support for cluster discovery you can use CNAME records as shorter alternatives to the longer hostname that is an alias.
In addition to A records, it is also possible to have CNAME records in the DNS servers. It is good to have a simpler/shorter hostname as an alternative for the one that maps to all the brokers.
;CNAME record
active.kafka. IN CNAME primary.kafka.cluster.hostname.
It this case, clients can use the simpler and shorter alternative for the hostname as follows:
kafka-topics --list --bootstrap-server active.kafka:9092
Using a CNAME also provides the possibility to easily switch between standby and active clusters. Assume there is also a standby cluster defined:
; PRIMARY CLUSTER
first.primary.kafka.fqdn. IN A 1.2.3.4
second.primary.kafka.fqdn. IN A 4.5.6.7
third.primary.kafka.fqdn. IN A 6.7.8.9
; DNS alias
primary.kafka.cluster.hostname. IN A 1.2.3.4
primary.kafka.cluster.hostname. IN A 4.5.6.7
primary.kafka.cluster.hostname. IN A 6.7.8.9
; STANDBY CLUSTER
first.standby.kafka.fqdn. IN A 4.3.2.1
second.standby.kafka.fqdn. IN A 7.6.5.4
third.standby.kafka.fqdn. IN A 9.8.7.6
; DNS alias
standby.kafka.cluster.hostname. IN A 4.3.2.1
standby.kafka.cluster.hostname. IN A 7.6.5.4
standby.kafka.cluster.hostname. IN A 9.8.7.6
;CNAME record
active.kafka. IN CNAME primary.kafka.cluster.hostname.
If the primary cluster completely stops, it is only needed to change the
active.kafka
CNAME to point to
standby.kafka.cluster.hostname
instead of the primary one:
active.kafka. IN CNAME standby.kafka.cluster.hostname.