V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ray1888
V2EX  ›  程序员

Python 远程 RPC 的选型落地问题

  •  
  •   ray1888 ·
    ray1888 · 2018-07-05 23:29:32 +08:00 · 2783 次点击
    这是一个创建于 2362 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前在做一个服务平台,是以 Tornado 作为提供给外部调用的。然后 Tornado 接收请求后,把参数传到 Celery 的 Prefork 进程中去进行远程的 RPC 调用(调用另一个平台 [可以理解为服务] )然后返回请求结果,然而目前需要在 celery 的进程中去维护每个服务的 RPC 链接,感觉这样服务的分布式状态会很乱,而且目前在 Celery 进程中去修改一个全局变量来维护 rpc 链接的时候,会出现保存链接的对象数据存在,但是方法丢失的情况。想问问大家,有没有好的方法可以解决这种比较复杂的 Python 异步调用的场景?

    9 条回复    2018-07-06 08:58:11 +08:00
    ray1888
        1
    ray1888  
    OP
       2018-07-06 00:20:52 +08:00
    目前使用的是 rpyc
    laike9m
        2
    laike9m  
       2018-07-06 00:42:44 +08:00
    试试 grpc 呢
    weyou
        3
    weyou  
       2018-07-06 02:57:22 +08:00 via Android
    Pyro4 了解一下?
    cbdyzj
        4
    cbdyzj  
       2018-07-06 07:39:01 +08:00 via Android
    用消息中间件
    niuroumian
        5
    niuroumian  
       2018-07-06 08:06:09 +08:00 via iPhone
    gRPC 非常好用!服务端客户端语言任意搭配,而且 nginx 原生支持负载平衡
    askfilm
        6
    askfilm  
       2018-07-06 08:30:00 +08:00
    thrift
    chenqh
        7
    chenqh  
       2018-07-06 08:57:34 +08:00
    多个服务?直接 http 不就好了吗
    ray1888
        8
    ray1888  
    OP
       2018-07-06 08:57:44 +08:00
    其实我想解决的目的是在进程里面动态添加 rpc 的链接,或者 python 有类似于 rpc 进程池的实现吗?
    ray1888
        9
    ray1888  
    OP
       2018-07-06 08:58:11 +08:00
    @chenqh 有一些业务上的原因,只能使用 RPC
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4003 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:18 · PVG 18:18 · LAX 02:18 · JFK 05:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.