排查 Bigtable 订阅问题

本文档提供了有关 Bigtable 订阅的问题排查提示。

无法创建或更新订阅

当您尝试创建或更新 Bigtable 订阅时,可能会遇到以下错误。

权限遭拒错误

如果 Bigtable 实例或表不存在,或者配置的服务帐号无权访问其中任何一个,您会收到权限遭拒错误。

若要解决此问题,请执行以下操作:

缺少列族

如果 Bigtable 表没有正确的列族,您会收到 INCOMPATIBLE_SCHEMA 错误。

此错误可能是由以下问题引起的:

  • 该表没有 data 列族。
  • 写入元数据 已启用,但该表没有 pubsub_metadata 列族。

如需解决此问题,请创建必要的列族。如需了解详情,请参阅 添加列族

订阅未写入数据

如果 Bigtable 订阅未写入数据,请运行 命令来检查 gcloud beta pubsub subscriptions describe 订阅状态:

gcloud beta pubsub subscriptions describe SUBSCRIPTION_ID

SUBSCRIPTION_ID 替换为订阅的名称。

bigtableConfig.state 字段包含状态。如果订阅已准备好将消息写入 Bigtable,则状态为 ACTIVE。 否则,配置中存在错误,导致订阅无法将消息写入 Bigtable 表。

配置问题可能包括以下内容:

当订阅处于错误状态时,它不会将消息写入 Bigtable 表。消息会保留在订阅积压中; 如果配置了 死信主题,则不会将消息传送给该主题。未确认的消息会保留订阅的 消息保留时长

解决问题后,订阅最终会恢复到正常状态。

积压不断增加

如果您的订阅状态为 ACTIVE,但订阅中的消息积压不断增加,或者消息转到订阅的死信主题,请查找以下问题。

发布速率超出容量

如果向主题发布消息的速率超出 Bigtable 集群的容量,则订阅中可能会出现积压。

消息排序会带来性能方面的权衡。 使用带有排序功能的 Bigtable 订阅可能会导致吞吐量降低或消息传送延迟时间增加。如果您发现启用排序功能后出现性能问题,请务必使用足够精细的排序键来避免热键,或者修改应用以使其不需要排序。如需了解详情,请参阅 使用排序消息时的注意事项

监控集群的性能,并考虑增加集群大小。如需了解详情,请参阅 Bigtable 文档中的以下主题:

跨区域流量

如果您的应用从与 Bigtable 集群不同的区域发布到主题,则与从同一区域发布相比,每条消息的发布时间都会更长。发布时间越长,订阅向 Bigtable 写入消息的速率就越低,从而降低总吞吐量。

为了尽量缩短消息的发布时间,您应该在与 Bigtable 集群相同的区域中发布消息。

后续步骤

  • 如果您仍然遇到 Bigtable 订阅问题,请参阅获取支持