V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rationa1cuzz
V2EX  ›  问与答

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

  •  
  •   rationa1cuzz · 2021-09-27 11:01:07 +08:00 · 831 次点击
    这是一个创建于 935 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求:a 服务不可以直接调用 b,需要 a 访问 p,p 再调用 b,等 b 返回再返回给 a,a 此时一直在等待,同步的。
    8 条回复    2021-09-27 18:49:01 +08:00
    Vegetable
        1
    Vegetable  
       2021-09-27 11:09:16 +08:00
    你这需求说的太干吧了,要分情况。首先自带的 http 最好别用。我的经验 requests 性能也比较差。

    第一个问题,这个服务预计的 QPS 是多少?如果比较低,那爱咋整咋整吧。
    第二个问题,b 的处理速度如何?如果 b 响应很快,使用同步逻辑可能是可接受的,如果 b 需要阻塞比较久,可能需要使用异步逻辑,就比较推荐 async/await 那套了。
    第三个问题,这个转发是否有业务逻辑,比如鉴权系统、日志之类的,这个主要是看 web 框架的生态,如果完全不考虑这些,grpc 之类的协议是否也可以考虑?
    rationa1cuzz
        2
    rationa1cuzz  
    OP
       2021-09-27 11:12:19 +08:00
    @Vegetable 无所谓 qps 不关心速度,只要实现,越快越好,也不用关心鉴权系统,只是要实现转发
    SbloodyS
        3
    SbloodyS  
       2021-09-27 11:16:27 +08:00
    falcon
    Vegetable
        4
    Vegetable  
       2021-09-27 11:17:55 +08:00
    @rationa1cuzz 那就 flask+requests 呗,最简单的,几行代码就行。不过你这个需求听起来有点像 p 在 b 的 ip 白名单所以只能转发一下,如果是这种情况可以在 p 布置一个 http 代理的,不用开发
    David1119
        5
    David1119  
       2021-09-27 11:39:11 +08:00
    几个 nginx 就搞定了吧?
    lyleshaw
        6
    lyleshaw  
       2021-09-27 15:39:53 +08:00
    看看 fastapi ?
    DaguguJ
        7
    DaguguJ  
       2021-09-27 16:48:39 +08:00
    python 的问题不要纠结,flask+requests 方案轻量、简单去实现一个 demo,这个实现起来根本用不了一天时间。
    NCZkevin
        8
    NCZkevin  
       2021-09-27 18:49:01 +08:00
    fastapi 或者 flask
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1079 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:25 · PVG 07:25 · LAX 16:25 · JFK 19:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.