是否有人使用JavaScript成功地建立了到Amazon MSK Kafka集群的客户端连接?没有YouTube视频或在线示例AFAIK。尝试使用KafkaJs npm模块对我不起作用,因为如果不在无法ssh的代理上安装IamAWSLogin插件,就不支持SASL AWS I am角色。
尝试使用普通的SASL方法在KafkaJ上不起作用,因为aws不使用用户名和密码。
我并没有发现kafka-node也有用。
有什么线索吗?
发布于 2021-11-21 21:01:11
开发中有一个新功能,允许使用AWS注入身份验证机制。
也许有必要为你的项目添加一个分支依赖项,这对于产品构建来说是一个风险,但好消息是已经审查了,应该很快就会合并:)
发布于 2021-06-23 10:04:59
我们也与IAM作了斗争,而且它似乎只适用于Java客户端。
我们已经让它与用户名/密码一起工作。有关MSK配置的详细信息,请参阅此处https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html。我建议您使用自定义安全组设置MSK,并为MSK端口设置适当的入站访问。
设置好cluser后,使用"View client information“按钮获取要使用的代理/端口。
然后这是您的KafkaJS客户端设置:
new Kafka({
clientId: 'my-app',
brokers: ['something.kafka.us-east-1.amazonaws.com:9096', 'somethingelse.kafka.us-east-1.amazonaws.com:9096'],
ssl: true,
sasl: {
mechanism: 'scram-sha-512',
username,
password,
}
})发布于 2021-07-10 22:12:12
我能够通过kafkajs库连接和使用Amazon MSK Kafka集群。最初,我遵循kafkajs库文档中的说明,了解如何使用aws机制进行sasl。
考虑到默认情况下MSK Kafka集群无法从互联网访问,我首先在视频https://www.youtube.com/watch?v=Bv70DoHDDCY之后创建了一个VPN客户端,确保该客户端授权用户访问我的VPC的子网,然后我简单地从配置中删除了sasl部分。
所以..。我使用了类似这样的东西:
const kafkaClient = new Kafka({
clientId: 'local-client',
brokers: [
'b-2.xxx.xxx.xx.xxx.xx.eu-central-1.amazonaws.com:9094',
'b-3.xxx.xxx.xx.xxx.xx.eu-central-1.amazonaws.com:9094',
'b-1.xxx.xxx.xx.xxx.xx.eu-central-1.amazonaws.com:9094'
],
ssl: true,
})如果sasl:{...}部分在那里,我会收到奇怪的错误,比如"BrokerPool无法连接到种子代理,正在尝试列表中的另一个代理:鉴于当前的SASL状态,请求无效“。
最有可能的是,由于VPN连接,不再需要sasl。
https://stackoverflow.com/questions/67951120
复制相似问题