无法从bluemix liberty连接到bluemix messagehub

js5cn81o  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(317)

我有一个连接bluemix消息中心的liberty应用程序。它在本地工作得很好,但是当我从bluemix-liberty运行liberty应用程序时,它永远不会工作。我在学习中的例子https://github.com/ibm-messaging/message-hub-samples/tree/master/kafka-java-liberty-sample 在运行时更改server.xml中的username/pw。
经过一番尝试和错误之后,我意识到当我在server.xml中硬编码我的kafka用户名/pw时,bluemixliberty连接到msghub fine。当我像示例中那样“热交换”kafka用户名/pw时,它不工作,并且从不连接到kafka(即使我重新启动服务,它也不会重新连接)。我已经通过使用cf登录到我的服务进行了检查,并且sever.xml确实正确地交换了用户名/pw。
bluemix liberty是否支持此功能?如果没有,我应该如何正确使用vcap服务,这样我就不会硬编码我的生产用户/pw了?

xxslljrj

xxslljrj1#

我刚刚将messagehub的kafkajavaliberty示例重新部署到bluemix,并检查了它是否正常工作。您自己的应用程序可能无法工作的一个原因可能是 server.xml 在替换凭据之前。在这个示例中,文本替换发生在设置任何jaas配置之前。
但是,您可以采用另一种更好的方法。使用kafka的0.10.2客户端,您不必使用全局jaas配置(a) jaas.conf 普通java应用程序中的文件,或 <jaasLoginContextEntry> 在自由的 server.xml ).
您可以同时删除这两个 <jaasLoginContextEntry> 以及 </jaasLoginModule> 部分来自 server.xml 避免在那里做任何替换。
添加到您的消费者和生产者的 Propertiessasl.jaas.config 属性,该属性包含从中获取的用户名和密码 VCAP_SERVICES .
看到了吗http://kafka.apache.org/documentation/#security_sasl_plain_clientconfig
e、 一个像下面这样的具有真实用户名和密码的属性。请注意 " 以及 ; 希望能一字不差地出现在那里。 sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USERNAME" password="PASSWORD"; 看到了吗https://github.com/ibm-messaging/message-hub-samples/pull/17 (我们将很快合并此pr,目前分支为https://github.com/edoardocomar/message-hub-samples/tree/liberty-fixed-serverxml)

相关问题