Spring cloud stream starter kafka在连接消费者时没有加载配置。以下是我在调试模式下运行时在控制台中看到的配置:
spring:
cloud:
stream:
bindings:
<binding configuration>
kafka:
binder:
autoCreateTopics: false
brokers: <list of kafka brokers>
defaultBrokerPort: <default port>
configuration:
security:
protocol: SSL
ssl:
truststore:
location: <path to cliend truststore jks>
password: <password>
type: JKS
keystore:
location: <path to cliend keystore jks>
password: <password>
type: JKS
key:
password: <password>
enabled:
protocols: TLSv1.2,TLSv1.1,TLSv1
我有以下配置部分的bootstrap yml文件
function savelike(storyid)
{
alert("<?php echo site_url('Welcome/savelikes');?>");
$.ajax({
type: "POST",
url: "<?php echo site_url('Welcome/savelikes');?>",
data: "Storyid="+storyid,
success: function (response) {
$("#like_"+storyid).html(response+" Likes");
}
});
}
如果我正确配置,有人可以告诉我吗?我能够使用spring-kafka生成器成功地向主题发布消息。在我考虑在春天kafka写作消费者之前,我想确保我做得正确。
答案 0 :(得分:2)
我不认为您可以将安全性和协议(例如)放在您提供的示例yaml中的两个级别,因为Kafka正在寻找security.protocol
,ssl.truststore.location
等属性。因此,在创建yaml文件时,请在层次结构中的同一级别提供所有与安全性相关的kafka属性。否则,spring将它们作为键/值对。
spring:
cloud:
stream:
bindings:
<binding configuration>
kafka:
binder:
autoCreateTopics: false
brokers: <list of kafka brokers>
defaultBrokerPort: <default port>
configuration:
security.protocol: SSL
ssl.truststore.location: <path to cliend truststore jks>
ssl.truststore.password: <password>
ssl.truststore.type: JKS
...
答案 1 :(得分:1)
配置在将其更改为https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/129
中的报告方式后加载感谢stackoverflow推荐关于上述git问题的帖子:)
答案 2 :(得分:0)
最近我也经历了同样的问题。不幸的是,sobychacko的答案对我没有用。尽管这种方法是正确的,但我认为错误在于放置“配置”道具的缩进处。
请参阅此链接中的3.4.1部分-https://docs.spring.io/autorepo/docs/spring-cloud-stream-binder-kafka-docs/1.1.0.M1/reference/htmlsingle/
当我将“ configuration”道具放置在与 spring.cloud.stream.binder.brokers,即
spring:
cloud:
stream:
binder:
brokers:
configuration:
security:
protocol: SSL
ssl:
truststore:
location: <path to cliend truststore jks>
password: <password>
type: JKS
keystore:
location: <path to cliend keystore jks>
password: <password>
type: JKS
key:
password: <password>
enabled:
protocols: TLSv1.2,TLSv1.1,TLSv1
这样,我可以看到日志中相应的字段。