一、关于kafka高版本与低版本不兼容,并不是绝对无法去适配
由于老的业务线使用低版本的kafka(0.10.X以下版本),而新项目使用高版本kafka(0.11.X)。
kafka0.10之后不兼容之前版本,目前在老业务线可以配置高低两个版本kafka生产者解决兼容新老系统之间消息传递。
一图胜千言,下边先看一张图,图中绿色实线表示该操作可以成功,红色虚线则表示该操作不可进行
总结如下
1、低版本的Producer可以向高版本、低版本的Broker服务器发送msg;高版本的Producer只能向高版本的Broker服务器发送msg。
2、对于Consumer 来说,高版本的Consumer只能消费高版本Broker服务器消息;低版本只能消费低版本Broker服务器消息。
二、如何使用
理解了上图中的原理,就可以在新的系统中兼容kafka
方法其实很简单,如果新系统使用的是高版本的kafka,又想让老系统给新系统发送kafka消息。方法有二
1、老系统整体都升级为高版本的kafka,但是成本比较高,风险也比较高,因为你不知道有哪些系统在接受老系统的kafka消息。
2、在老系统中配置两个kafka的Broker服务 用低版本的Producer分别向两个Broker服务器发送msg ,消费使用可因根据个子系统版本高低配置不同的消费者。