blue7wings
V2EX  ›  PHP

PHP 如何更好的方式调用其他服务?

  •  1
     
  •   blue7wings · Feb 24, 2018 · 5884 views
    This topic created in 3173 days ago, the information mentioned may be changed or developed.
    因为现在业务依赖其他同事的服务,如何更好的调用呢?
    起初,我是用 HTTP 请求完成的,速度跟不上,后来发现谷歌的 GRPC 也是比较好的解决方案,稍微复杂了点,有没有更好更优雅的解决方案呢?
    25 replies  •  2018-02-25 10:57:07 +08:00
    owenliang
    owenliang
    Feb 24, 2018
    1
    http 协议最佳,至于是否在协议之上做微服务框架,那是另一码事。
    askfilm
    askfilm
    Feb 24, 2018
    2
    thrift
    gouchaoer
    gouchaoer
    Feb 24, 2018❤️2
    3
    如果你在 fpm 里面跑的话用 http 去调用别人的服务就阻塞了,流量一大就会死得很惨
    xiaohuokevin
    xiaohuokevin
    Feb 24, 2018
    4
    m
    gouchaoer
    gouchaoer
    Feb 24, 2018
    5
    http、grpc、thrift 都没区别。。。重要的是这个服务的返回时间,时间快还行
    gouchaoer
    gouchaoer
    Feb 24, 2018
    6
    swoft、swoole1.x 的几大框架看看吧
    picasso250
    picasso250
    Feb 24, 2018
    7
    一个 HTTP 请求多少 ms 完成?
    有多少量?

    楼主你把详细数据发出来呀.
    noFear
    noFear
    Feb 24, 2018❤️1
    8
    本质上 php 只适合 http 的服务调用,因为没有共享内存可以保持连接做熔断和降级等操作,使用 tcp 并不会带来什么明显的好处,当然如果使用 swoole 的话是可以的,但又想了想那还不如用 golang 开发呢,学习成本也很低。
    noFear
    noFear
    Feb 24, 2018
    9
    @gouchaoer 一般 curl 都会设置合理的超时时间吧
    blue7wings
    blue7wings
    OP
    Feb 24, 2018
    10
    @owenliang
    @askfilm
    @gouchaoer
    @noFear

    谢谢各位的建议,我去了解一下,谢谢。
    shiny
    shiny
    PRO
    Feb 24, 2018
    11
    延时太大的接口需要考虑后台队列处理
    dawniii
    dawniii
    Feb 24, 2018
    12
    @gouchaoer 如果你在 fpm 里面查询 mysql 的话就阻塞了,流量一大就会死得很惨。。。🤣
    sfree2005
    sfree2005
    Feb 24, 2018 via Android
    13
    你已经把可以异步的都异步了吗? 我用 laravel 的时候会用 queue,一样是 HTTP,没有实质加快请求速度,但用户体验好很多。
    gouchaoer
    gouchaoer
    Feb 24, 2018
    14
    @dawniii mysql 和 redis 返回比较快,可以允许阻塞,甚至 http/rpc 之类的如果你能保证返回比较快也允许,否则
    sagaxu
    sagaxu
    Feb 24, 2018
    15
    @gouchaoer swoole 2.x 才是最佳选择,1.x 的 callback 写法不友好
    p2pCoder
    p2pCoder
    Feb 24, 2018
    16
    thrift 吧,各种语言都有实现
    gouchaoer
    gouchaoer
    Feb 24, 2018
    17
    @sagaxu swoft 马上就出 1.0 版本了,腾讯的 tsf3 估计吹了,现在全国的 phper 都在等待 swoft,mmp
    skyjerry
    skyjerry
    Feb 24, 2018 via iPhone
    18
    @gouchaoer 你从哪里得知全国的 phper 都在等 swoft ?
    sunmonster
    sunmonster
    Feb 24, 2018
    19
    json-rpc 调试方便,速度跟不上跟协议有点关系,但是应该关系不大,可以用 go 写服务,然后用 php 去调用
    akira
    akira
    Feb 24, 2018
    20
    感觉你的问题不是换个接口或者协议就可以解决的。

    跟踪分析下到底什么地方消耗时间多了,再来针对性的处理会更合理。
    gouchaoer
    gouchaoer
    Feb 24, 2018 via Android
    21
    @skyjerry why so serious
    g079708
    g079708
    Feb 24, 2018 via iPhone
    22
    @gouchaoer mmp 是什么
    kslr
    kslr
    Feb 24, 2018
    23
    走消息隊列泡個 php cli 如何哦
    lolizeppelin
    lolizeppelin
    Feb 25, 2018 via Android
    24
    fast cgi 就老老实实走短时间可以完成的接口
    xiaoli88
    xiaoli88
    Feb 25, 2018
    25
    http
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1346 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 21:57 · PVG 05:57 · LAX 13:57 · JFK 16:57
    ♥ Do have faith in what you're doing.