V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
itertools
V2EX  ›  Python

关于 grpc 如何扩展

  •  
  •   itertools · 2017-08-23 10:49:51 +08:00 · 4447 次点击
    这是一个创建于 2409 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近刚接触 grpc 有个不明白的地方: 官方例子中 grpc 服务端和客户端都是写死了 host 和 port,那么如果由于用户量的上升,grpc 服务端需要扩展到多台,那么这个时候如何处理? grpc 有现成的方案?

    11 条回复    2017-08-23 22:24:45 +08:00
    donyee
        1
    donyee  
       2017-08-23 11:45:20 +08:00
    实现个 DNS 轮询服务
    或者试试 grpc + consul
    maemual
        2
    maemual  
       2017-08-23 12:41:31 +08:00
    了解一下什么叫 服务注册发现
    maemual
        3
    maemual  
       2017-08-23 12:42:43 +08:00
    简单方案就是服务端前面用 HAProxy,客户端连 HA
    timonwong
        4
    timonwong  
       2017-08-23 12:56:09 +08:00   ❤️ 1
    python 的 grpc 就放弃吧,虽然你可以写 C extension 扩展 resolver,但是要在最开头引入,因为 grpcio 的所有 class,__init__ 都隐含调用 grpc_init(),这样你写的 resolver 就没有用了

    c-core 原生支持 dns resolver,target 用 dns:// 开头,不过只支持 A 记录
    c-core 的 client side lb 自带了,不需要你自己做,但是参数你要看 C 的代码。
    完全没有 go client 那么方便。

    最终你可能还是会考虑 @maemual 说的 HAProxy 方案
    cloudzhou
        5
    cloudzhou  
       2017-08-23 13:15:42 +08:00
    JohnSmith
        6
    JohnSmith  
       2017-08-23 13:30:47 +08:00
    go 的话很方便,etcd 的 v3 版本客户端已经提供 grpclb 的实现,几行代码就能使用,而且不仅仅可以简单的负载算法,还可以自己实现一些特定的算法来满足特定需求,比如一致性 hash
    @cloudzhou +1
    hand515
        7
    hand515  
       2017-08-23 13:37:49 +08:00
    Java 版本可以自己实现 Loadbalancer,不过略复杂
    janxin
        8
    janxin  
       2017-08-23 15:29:05 +08:00
    python 选择 HA 方案挺方便的
    zh5e
        9
    zh5e  
       2017-08-23 15:34:18 +08:00
    用的 aws loadblance 服务
    owt5008137
        10
    owt5008137  
       2017-08-23 15:50:56 +08:00 via Android
    这和 grpc 有半毛钱关系?
    0915240
        11
    0915240  
       2017-08-23 22:24:45 +08:00
    grpc 只负责 rpc,你这个需要的是服务发现与 client 负载均衡。

    当然系统化的话就更多了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3242 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:52 · PVG 21:52 · LAX 06:52 · JFK 09:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.