Python 远程 RPC 的选型落地问题

2018-07-05 23:29:32 +08:00
 ray1888

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

2783 次点击
所在节点    程序员
9 条回复
ray1888
2018-07-06 00:20:52 +08:00
目前使用的是 rpyc
laike9m
2018-07-06 00:42:44 +08:00
试试 grpc 呢
weyou
2018-07-06 02:57:22 +08:00
Pyro4 了解一下?
cbdyzj
2018-07-06 07:39:01 +08:00
用消息中间件
niuroumian
2018-07-06 08:06:09 +08:00
gRPC 非常好用!服务端客户端语言任意搭配,而且 nginx 原生支持负载平衡
askfilm
2018-07-06 08:30:00 +08:00
thrift
chenqh
2018-07-06 08:57:34 +08:00
多个服务?直接 http 不就好了吗
ray1888
2018-07-06 08:57:44 +08:00
其实我想解决的目的是在进程里面动态添加 rpc 的链接,或者 python 有类似于 rpc 进程池的实现吗?
ray1888
2018-07-06 08:58:11 +08:00
@chenqh 有一些业务上的原因,只能使用 RPC

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/468508

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX