"Kafka Timed out waiting for a node assignment." 是MSK

"Kafka Timed out waiting for a node assignment." on MSK

规格:

我也尝试添加 IAM 身份验证信息,如 Amazon MSK Library for AWS Identity and Access Management 所推荐。它说要在 config/client.properties:

中添加以下内容
# Sets up TLS for encryption and SASL for authN.
security.protocol = SASL_SSL

# Identifies the SASL mechanism to use.
sasl.mechanism = AWS_MSK_IAM

# Binds SASL client implementation.
# sasl.jaas.config = software.amazon.msk.auth.iam.IAMLoginModule required;

# Encapsulates constructing a SigV4 signature based on extracted credentials.
# The SASL client bound by "sasl.jaas.config" invokes this class.
sasl.client.callback.handler.class = software.amazon.msk.auth.iam.IAMClientCallbackHandler

# Binds SASL client implementation. Uses the specified profile name to look for credentials.
sasl.jaas.config = software.amazon.msk.auth.iam.IAMLoginModule required awsProfileName="kafka-client";

并且 kafka-client 是作为实例配置文件附加到 EC2 实例的 IAM 角色。

网络:我使用 VPC 可达性分析器来确认安全组配置正确,我用作生产者的 EC2 实例可以访问无服务器 MSK 集群。

我要做什么:创建一个主题。

我在努力bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic quickstart-events --bootstrap-server boot-zclcyva3.c2.kafka-serverless.us-east-2.amazonaws.com:9098 结果:

Error while executing topic command : Timed out waiting for a node assignment. Call: createTopics
[2022-01-17 01:46:59,753] ERROR org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. Call: createTopics
 (kafka.admin.TopicCommand$)

我也在尝试:明文端口9092。(9098 is the IAM-authentication port in MSK,无服务器MSK默认使用IAM认证。)

我在 SO 上找到的关于这个节点分配错误的所有其他帖子都不包括 MSK。我尝试了像 uncommenting the listener setting in server.properties 这样的建议,但没有任何改变。

安装 kcat 进行故障排除对我不起作用,因为 yum 包管理器没有开箱即用的安装,Amazon Linux 2 使用它,并且由于 these instructionschecking for libcurl (by compile)... failed (fail) 对我来说失败了。

问题:关于解决此“节点分配”错误的任何其他提示?

创建的属性文件不会自动使用;您的命令需要包含 --command-config client.properties,其中此属性文件记录在 linked IAM page.

的 MSK 文档中

摘录...

ssl.truststore.location=<PATH_TO_TRUST_STORE_FILE>
security.protocol=SASL_SSL
sasl.mechanism=AWS_MSK_IAM
sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler

或者,如果纯文本端口不工作,那么你有其他网络问题

除了这些步骤,我建议联系 MSK 支持,并告诉他们 update the "Create a Topic" page to no longer use Zookeeper, keeping in mind that Kafka 3.0 is not (yet) supported

最近更新了文档,我可以完全按照它进行操作,没有任何问题(IAM 政策现在是正确的)

https://docs.aws.amazon.com/msk/latest/developerguide/serverless-getting-started.html