本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
排查 Amazon MSK Connect 中的问题
以下信息可帮助您排查使用 MSK Connect 时可能存在的问题。您也可以将问题发布到 Amazon Web Services re:Post
连接器无法访问公有互联网上托管的资源
请参阅为 Amazon MSK Connect 启用互联网访问。
连接器正在运行的任务数不等于 tasks.max 中指定的任务数量
以下是连接器使用的任务可能少于指定的 tasks.max 配置的一些原因:
某些连接器实现限制了可使用的任务数量。例如,适用于 MySQL 的 Debezium 连接器仅限于使用单个任务。
使用自动扩缩容量模式时,Amazon MSK Connect 会覆盖连接器的 tasks.max 属性,其值与连接器中运行的工作程序数量和每个工作程序的 MCU 数量成正比。如果您配置了可选
maxAutoscalingTaskCount参数,则该tasks.max值将不会超过此限制。有关更多信息,请参阅了解最大自动缩放任务数。对于接收器连接器,并行度(任务数量)不能超过主题分区的数量。虽然您可以将 tasks.max 设置为大于该值,但单个分区一次只能由一个任务处理。
在 Kafka Connect 2.7.x 中,默认的使用器分区分配器是
RangeAssignor。该分配器的行为是将每个主题的第一个分区分配给单个使用器,将每个主题的第二个分区分配给单个使用器,依此类推。这意味着,使用RangeAssignor的接收器连接器的最大活动任务数等于正在消耗的任何单个主题中的最大分区数。如果这不适用于您的用例,则应创建一个工作程序配置,其中将consumer.partition.assignment.strategy属性设置为更合适的使用器分区分配器。参见 Kafka 2.7 接口 ConsumerPartitionAssignor:所有已知的实现类。
连接器重启操作达到 RESTART_FAILED 状态
如果重启操作达到该RESTART_FAILED状态,请尝试以下方法来解决问题:
有关详细信息,请查看
DescribeConnectorOperation响应中的errorInfo字段。查看来自 CloudWatch Amazon S3 或 Firehose 的连接器日志,查看是否有错误消息,表明任务无法完成启动的原因。
检查连接器的任务是否被外部依赖关系(数据库、网络端点或连接器与之交互的其他系统)阻止。
验证连接器的 Kafka 集群是否可访问且运行正常。
无法重启连接器 — 400 BadRequestException
以下是您可能无法重启连接器的一些原因:
连接器未处于
RUNNING状态(例如,它是CREATINGUPDATING、或DELETING)。连接器上的另一项生命周期操作已经在进行中。
您使用早
--only-failed-tasks于 3.7 的 Amazon MSK 版本在连接器上指定(此功能需要 3.7 或更高版本)。连接器是在重启功能可用之前创建的。目前仅新创建的连接器支持此功能。