AWS DMS写入MSK目标失败提示Local: Message timed out如何排查
AWS DMS写入MSK超时问题排查解决方案
首先明确:DMS端点连接测试仅验证网络连通性与基础鉴权,不会验证主题写入权限,因此测试通过不代表运行时可正常写入数据。可按如下步骤排查:
1. 校验MSK访问控制与DMS权限
如果你的MSK集群开启了IAM访问控制,需为DMS复制实例关联的IAM角色添加如下操作权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:DescribeCluster", "kafka-cluster:DescribeTopic", "kafka-cluster:WriteData", "kafka-cluster:WriteDataIdempotently" ], "Resource": [ "arn:aws:kafka:<替换为区域>:<替换为账户ID>:cluster/<替换为集群名称>/*", "arn:aws:kafka:<替换为区域>:<替换为账户ID>:topic/<替换为集群名称>/*/<替换为目标主题名称>" ] } ] }
同时需在DMS Kafka端点配置中,将安全协议设置为SASL_SSL,SASL机制设置为AWS_MSK_IAM。
如果MSK使用明文接入,需确认端点安全协议设置为PLAINTEXT,且对应broker端口为9092。
2. 调整Kafka端点运行参数
- 确认broker地址与MSK控制台提供的私有接入地址完全一致,不要遗漏端口
- 将
acks参数设置为1,避免多可用区同步超时 - 调大
消息超时时间到60000ms,适配MSK集群的写入延迟 - 确认
最大请求大小不超过MSK集群message.max.bytes配置(默认1MB)
3. 校验主题配置
- 优先提前创建目标主题,分区数不低于2,避免单分区压力过大导致超时
- 如果使用自动创建主题,需确认MSK集群开启了
auto.create.topics.enable配置
4. 检查VPC配置
- 确认DMS复制实例所在子网的路由表无ACL拦截MSK流量
- 确认DMS复制实例开启了DNS解析与DNS主机名,可正常解析MSK broker域名
内容的提问来源于stack exchange,提问作者kdgregory
相关产品推荐
相关产品推荐

