Hi Marcus,

1. If you change REPLICATION_FACTOR_CONFIG without resetting the application (or deleting the changelog and repartition topics) and redeploy the Streams application, the replication factor of the internal topics will not change. The replication factor will only change for new deployments, i.e., Streams applications with a new application ID or Streams applications that where reset. In both cases the internal topics will be newly created.

2. Changing the replication factor of a topic directly on the brokers should be fine. Kafka Streams should not re-create the internal topics and not throw any exceptions.

3. Unfortunately, I do not know the answer to this question. Hopefully somebody else can answer it.

I answered your questions to the best of my knowledge. The only way to confirm my answers is to test (preferably in a test environment).


Best,
Bruno

On 28.04.21 17:34, Marcus Horsley-Rai wrote:
Hi All,

I'm in a sub-optimal situation whereby I have some Kafka Streams apps
deployed to production, but the default replication factor set on the
brokers was 1 when they were first deployed.
As such, any state store changelog topics, and re-partition topics
therefore have RF 1 also.

I'm familiar with the bin/kafka-reassign-partitions.sh tool and how to use
that.
I've since also found the streams replication.factor
(StreamsConfig.REPLICATION_FACTOR_CONFIG) setting that can be supplied in
the streams apps config.

My questions are:

    1.  Will simply changing the value of REPLICATION_FACTOR_CONFIG and
    re-deploying have any effect on already-created internal topics?
    2. Conversely, should I just change the RF of the internal topics using
    the re-assign-partitions tool? Is that safe to do whilst the apps are still
    running?
    3. (not Streams-specific) If a broker that was the leader of
    partition(s) for a topic with RF 1 died (i.e. no replicas), and was
    non-recoverable - would the only way to restore service to those partitions
    be to delete the topic and re-create?  (with data loss, understandably). I
    couldn't seem to achieve this using preferred/unclean leader election, nor
    using the re-assign-partitions tool, since that requires all brokers to be
    healthy.

Many thanks in advance for any answers,

Marcus

Reply via email to