【问题标题】:Create AWS amazon-MSK JavaScript Client connection创建 AWS amazon-MSK JavaScript 客户端连接
【发布时间】:2021-06-12 17:01:32
【问题描述】:

是否有人使用 JavaScript 成功建立了与 Amazon MSK Kafka 集群的客户端连接?没有 YouTube 视频或在线示例 AFAIK 不存在。尝试使用 KafkaJs npm 模块对我不起作用,因为如果不在无法 ssh 进入的代理上安装 IamAWSLogin 插件,则不支持 SASL AWS 我是角色。

尝试使用普通 SASL 方法在 KafkaJs 上不起作用,因为 aws 不使用用户名和密码。

我没有发现 kafka-node 也有用。

有什么线索吗?

【问题讨论】:

标签: apache-kafka kafka-consumer-api kafkajs


【解决方案1】:

有一个新功能正在开发中,允许向 AWS 注入身份验证机制。

https://medium.com/@jm18457_46341/using-amazon-msk-with-iam-access-control-for-apache-kafka-and-node-js-with-kafkajs-71638912fe88

可能需要为您的项目添加分支依赖,这对生产构建有风险,但是好消息已经过审核,应该尽快合并:)

https://github.com/tulios/kafkajs/pull/1101

【讨论】:

    【解决方案2】:

    我们也和 IAM 打过仗,而且似乎只针对 Java 客户端。

    我们已经让它与用户名/密码一起使用。 MSK 配置的详细信息在这里https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html。我建议您在设置 MSK 时使用自定义安全组并为 MSK 端口设置适当的入站访问。

    设置集群后,使用“查看客户端信息”按钮获取要使用的代理/端口。

    那么这是你的 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,
      }
    })
    

    【讨论】:

      【解决方案3】:

      我能够通过 kafkajs 库连接和使用 Amazon MSK Kafka 集群。 最初,我按照 kafkajs 库文档中关于如何将 aws 机制用于 sasl 的说明进行操作。

      考虑到默认情况下无法从 Internet 访问 MSK Kafka 集群,我首先在此视频之后创建了一个 VPN 客户端:https://www.youtube.com/watch?v=Bv70DoHDDCY,确保客户端授权用户访问我的 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。

      【讨论】:

        猜你喜欢
        • 2020-01-03
        • 1970-01-01
        • 2016-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-17
        • 2013-04-26
        • 2019-02-28
        相关资源
        最近更新 更多