Python 库选择, Python 转发 http 请求,自带 http/aiohttp/flask/Django?

2021-09-27 11:01:07 +08:00
 rationa1cuzz
需求:a 服务不可以直接调用 b,需要 a 访问 p,p 再调用 b,等 b 返回再返回给 a,a 此时一直在等待,同步的。
964 次点击
所在节点    问与答
8 条回复
Vegetable
2021-09-27 11:09:16 +08:00
你这需求说的太干吧了,要分情况。首先自带的 http 最好别用。我的经验 requests 性能也比较差。

第一个问题,这个服务预计的 QPS 是多少?如果比较低,那爱咋整咋整吧。
第二个问题,b 的处理速度如何?如果 b 响应很快,使用同步逻辑可能是可接受的,如果 b 需要阻塞比较久,可能需要使用异步逻辑,就比较推荐 async/await 那套了。
第三个问题,这个转发是否有业务逻辑,比如鉴权系统、日志之类的,这个主要是看 web 框架的生态,如果完全不考虑这些,grpc 之类的协议是否也可以考虑?
rationa1cuzz
2021-09-27 11:12:19 +08:00
@Vegetable 无所谓 qps 不关心速度,只要实现,越快越好,也不用关心鉴权系统,只是要实现转发
SbloodyS
2021-09-27 11:16:27 +08:00
falcon
Vegetable
2021-09-27 11:17:55 +08:00
@rationa1cuzz 那就 flask+requests 呗,最简单的,几行代码就行。不过你这个需求听起来有点像 p 在 b 的 ip 白名单所以只能转发一下,如果是这种情况可以在 p 布置一个 http 代理的,不用开发
David1119
2021-09-27 11:39:11 +08:00
几个 nginx 就搞定了吧?
lyleshaw
2021-09-27 15:39:53 +08:00
看看 fastapi ?
DaguguJ
2021-09-27 16:48:39 +08:00
python 的问题不要纠结,flask+requests 方案轻量、简单去实现一个 demo,这个实现起来根本用不了一天时间。
NCZkevin
2021-09-27 18:49:01 +08:00
fastapi 或者 flask

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

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

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

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

© 2021 V2EX