Spring Cloud Stream 2.0是否与Kafka经纪人0.10.2兼容?

时间:2018-04-06 08:00:19

标签: spring-cloud-stream

Spring Cloud Stream指定其2.0版本使用kafka-clients 1.0并且与Kafka代理1.0,0.11兼容(不提及0.10.2及之前的版本)。

Kafka指定代理0.10.2(甚至0.10.1)与任何版本的Java客户端兼容,可能包括kafka-clients 1.0。

那么spring-cloud-stream-binder-kafka 2.0和0.10.2代理之间是否存在任何兼容性问题?

我计划从spring-cloud-stream 1.2 + Kafka 0.10.2升级到spring-cloud-stream 2.0 + Kafka 1.0,并试图了解我是否可以一次性完成(客户 - &gt ; 1.0,然后是经纪人 - > 1.0),或者是spring-cloud-stream支持的无停机升级路径。

1 个答案:

答案 0 :(得分:2)

是的,它应该可以正常工作(我刚用当前快照测试过它)。

但是,2.0默认使用本机kafka标头;标题在Kafka中与0.11经纪人一起介绍。

您需要将制作人ParseUser user = new ParseUser(); // Set the user's username and password, which can be obtained by a forms user.setUsername(<Insert Username Here>); user.setPassword(<Insert User Password Here>); user.signUpInBackground(new SignUpCallback() { @Override public void done(ParseException e) { if (e == null) { alertDisplayer("Sucessful Sign Up!","Welcome" + <Insert Username Here> + "!"); } else { ParseUser.logOut(); Toast.makeText(SignUpActivity.this, e.getMessage(), Toast.LENGTH_LONG).show(); } } });设置为headerModenone。 (embeddedHeaders是1.x中已弃用的none的同义词。

1.x默认情况下使用raw,如果已配置,则使用embeddedHeadersraw)。

因此,无论如何,如果您希望2.0生产者为1.x使用者创建消息,无论代理版本如何,您都需要这样做。

在消费者方面,2.0将检测消息是否具有本机或嵌入式标头(或无)。

另一个警告是,除非代理至少为1.0.0,否则无法将binder属性none设置为autoAddPartitions。供应者使用java true。 1.x使用了可以扩展分区的scala客户端。