【问题标题】:Is here have Balancer and NameResolver in gRPC with Python?这里有使用 Python 的 gRPC 中的 Balancer 和 NameResolver 吗?
【发布时间】:2020-11-19 02:48:24
【问题描述】:

我尝试使用 zookeeper 在 Python 中构建高可用 gRPC 客户端。但我在 Python 中找不到 Balancer 和 NameResolver 。在 Java 和 Go 中有。

我知道它可以这样


options = [('grpc.lb_policy_name', 'round_robin')]
channel = grpc.insecure_channel("ipv4:127.0.0.1:7777,127.0.0.1:8888", options=options,)

它可以故障转移和平衡,但目标是静态的。如果我添加一个新服务器,它就找不到。我想要自定义平衡策略。

那我该怎么办,我们可以在预期的时候替换通道对象吗?或者我们可以构建我们的 c-core 吗,我们有 C++ 和 Python 开发人员。

【问题讨论】:

    标签: python grpc failover


    【解决方案1】:

    这些接口不存在于 Python、C++ 或任何基于 C++-Core 实现构建的 gRPC 实现中。 可以通过向核心添加补丁来添加name resolverload balancing policy来完成。

    但是,所有官方支持的 gRPC 语言最近都添加了对 Envoy 和 Istio 使用的 xDS protocol 的支持。也可以实现一个执行所需分辨率的 xDS 服务器。这可以作为 Zookeeper 和 gRPC 客户端之间的服务来完成。与this xDS server backed by Consul比较。

    【讨论】:

    • Consul 本身提供了一个service mesh,它提供了比 consul-envoy-xds 提供的一切(以及更多)。不过感谢那个项目。这是行业倾向于 xDS API 的另一个例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 2012-02-05
    相关资源
    最近更新 更多