Artur,

The upgrade process is such that

1) You ensure that there is a hard-check on protocol version if not exists
already. As you have already mentioned above, in #3 - it's to ensure that
min verson for msg formats are being adhered to before upgrade.
2) broker protocol version is to ensure that when you do rolling upgrade
there is a minimum compatibility between inter-broker comms (if that makes
sense).

API versions are there for a specific reason (to ensure compatbility is
maintained first before the protocol/msg formats are fixed). Also, it
ensures that a regular upgrade (e.g. from bugfix->major release) happens
seamlessly via rolling restart. If you want to get techincal about it, you
can look at kafka Table load and config load in github codebase.

Once you've initiated a rolling restart by setting
inter.broker.protocl.version and log.messge.format.version there is no way
back - but i am happy to be proven wrong as I have only done rolling
restart successfully (never needed to go back :) )



On Thu, 9 May 2019 at 09:54, Chylek, Artur <artur.chy...@sabre.com> wrote:

> Hi,
> I read the documentation about upgrading Kafka(
> http://kafka.apache.org/21/documentation.html#upgrade_2_1_0) but I have
> questions that I believe the documentation doesn't cover. I am planning to
> upgrade Kafka from 2.0.0 to 2.1.0 and would like to make sure what to do
> when something goes wrong - I am mostly interested in reverting back to the
> older version. I admit that I am confused about API versions, log message
> versions and inter broker protocol versions.
>
> According to the documentation these are the steps I need to follow:
>
>   1.  Set inter.broker.protocol.version to 2.0.0
>   2.  I don't have currently log.message.format.version set to 2.0.0, so
> according to documentation I don't need to specify it
>   3.  Upgrade broker code and restart it. This is I am not sure what
> happens next. Since I don't have log.message.format.version set then
> broker's default value will be used - I guess 2.1.1. Does it mean that:
>      *   New messages that arrive from producers will be saved in a log
> file with a new format?
>      *   Old messages that already exist in log files will be converted to
> the new format once the broker starts?
>      *   Does inter.broker.protocol.version has anything to do with
> log.message.format.version?
> I guess a) and b) are not true since according to the documentation up to
> this point I can revert back to the older version of Kafka. Could you
> confirm?
>
>   1.  Change inter.broker.protocol.version to 2.1.1 and restart brokers -
> after this is done reverting back is not possible. Could you explain what
> is happening in Kafka so that reverting cannot be done?
>
> Regards,
> Artur
>

Reply via email to