Closed ut0mt8 closed 4 years ago
Apart from Produce message which contains message headers, a kafka client always sends ApiVersions and Metadata requests. Theses manages are required by kafka protocol to set up a connection to the broker(s).
A proxy / dispatcher you propose would have to manage connections and topology changes to all possible brokers from all clusters. Some messages (apart from produce) would have to be replicated.
The nature of the native kafka protocol would make development very complex.
Better solution would be to build a proxy like gprc (with streaming) to multiple Kafkas. Of course the clients would have to use different protocol.
Thks for the answer. After reviewing the kafka protocol that what I though also.
I known it's not the goal of this project but I have in mind something that can help me to solve big scaling issues. The idea is to write a proxy between the producer and the brokers cluster, that can route all the trafic to the appropriate kafka cluster depending on a field on kafka header message. Maybe my idea is just crap, I don't know but if I can your input I ll appreciate.