I have 3 broker Kafka cluster, and what I am looking is to set any 1 broker in ready only mode. I did checked Kafka documentation but did not find any config to do this.
Is there any way to achieve this?
Update
My Use Case:
Current state: I have a 3 broker kafka cluster running in healthy state.
What to achieve: I want to update the hardware of all 3 brokers.
What I am trying:
- Launch 3 new brokers, and let them join the cluster (cluster of 6)
- Use reassign-partition tool to migrate data from old brokers to new brokers
- Once successfully completed above operation, then terminate old 3 brokers
I did verified this, and its working fine, I can see all my data moved successfully to new brokers.
. .
What is the challenge:
I do have clients(producer and consumer) accessing this cluster. I want the above activity to be NON-DOWNTIME(I mean I should not loose any of the client data, also existing clients should be able to access service)
The thing I am digging currently is - what if a client make a request to create a new topic at the exact same time when data migration is in progress.
Will this happen?
Partitions of new topic may go to old brokers, and as data reassignment is in-progress, this topic will not be reassigned.(I know it can go to new brokers as well, but what if all partitions are assigned to old brokers)
So if I terminate old brokers, then will I loose the newly created topic ?
Hence
So that is why I was looking for a way - by which I can make sure that the partitions of new topic are placed to new brokers(similar to put the old brokers in read only mode)