向Cloud BigTable写入行时发生客户端错误

时间:2019-05-21 10:28:34

标签: go google-cloud-platform google-cloud-bigtable

我试图使用Go SDK for bigtable向BigTable表写入一行。 我在表对象上使用apply方法。

当我尝试多次写时,出现以下错误:

rpc error: code = Canceled desc = grpc: the client connection is closing

以下是我的代码:

func Put(tableName string, columnFamilyName string, rowKey string, attrMap map[string]interface{}) error {

    tbl := BigTableClient.Open(tableName)
    mut := bigtable.NewMutation()

    for key, val := range attrMap {
        if utils.IsJSON(val.(string)) {
            v, _ := json.Marshal(val)
            mut.Set(columnFamilyName, key, bigtable.Now(), []byte(v))
        } else {
            v := val.(string)
            mut.Set(columnFamilyName, key, bigtable.Now(), []byte(v))
        }
    }
    err := tbl.Apply(BigTableContext, rowKey, mut)
    if err != nil {
        errMsg := "Error while writing to BT: " + err.Error()
        logger.LogError(errMsg)
    }
    return err
}

有人可以帮我理解这个问题吗?

1 个答案:

答案 0 :(得分:1)

这似乎是gRPC错误。

也许您的网络延迟会导致gRPC错误。

您可以测试使用Problem with gRPC setup. Getting an intermittent RPC unavailable error

通过您自己的gRPC conn(https://godoc.org/google.golang.org/api/option#WithGRPCConn)使用bigtable