blue7wings
V2EX  ›  PHP

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

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

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

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

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