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支持的无停机升级路径。
答案 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();
}
}
});
设置为headerMode
或none
。 (embeddedHeaders
是1.x中已弃用的none
的同义词。
1.x默认情况下使用raw
,如果已配置,则使用embeddedHeaders
(raw
)。
因此,无论如何,如果您希望2.0生产者为1.x使用者创建消息,无论代理版本如何,您都需要这样做。
在消费者方面,2.0将检测消息是否具有本机或嵌入式标头(或无)。
另一个警告是,除非代理至少为1.0.0,否则无法将binder属性none
设置为autoAddPartitions
。供应者使用java true
。 1.x使用了可以扩展分区的scala客户端。