我正在基于https://github.com/grpc/grpc/blob/master/doc/load-balancing.md和https://godoc.org/google.golang.org/grpc/balancer/grpclb/grpc_lb_v1开发自己的自定义GRPCLoadBalancer,效果很好。
当前,当客户端尝试连接到下游服务(通过我的Grpc LoadBalancer)时,我需要发送自定义错误代码作为状态代码,并自定义错误消息作为错误消息
基本上,我正在尝试通过BalanceLoad()
发送此自定义错误代码和消息。该函数的签名为(LoadBalancerServer接口的一部分)
BalanceLoad(LoadBalancer_BalanceLoadServer) error
此方法仅允许引发错误(本质上是错误字符串),我已经看到它引发的错误没有到达客户端。 如何将我的自定义错误消息和代码发送到Grpc通道,以便客户端应收到我的自定义错误,而不是诸如以下错误消息:
Grpc.Core.RpcException: Status(StatusCode=Unknown, Detail="Failed to create subchannel")
因此,它不是我的StatusCode = "Unknown"
,而是我的自定义错误代码,详细信息将是我的自定义错误消息。