首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  PHP

grpc PHP 的疑惑

  •  
  •   clearT · 326 天前 · 3066 次点击
    这是一个创建于 326 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.请问各位大佬 grpc 为什么只支持 php 的 client,不支持 php server,是因为 php cli 模式下没有稳定可用于生产的 支持 http2 的服务器吗( php -s 不能用于生产环境)?如果是这样的话是否采用 swoole 可以实现一个 cli 的 http2 服务,然后自己在加上路由的功能?(或者 swoole 和 laravel 等框架适配直接使用框架的路由)不知道我这样理解对不对。

    2.grpc 是基于 http2 和 pb 的,所以是否服务端是开启一个 http 服务来监听 rpc 请求,而不是 TCP 服务?

    2.Thrift 支持 php server ?

    不知道问题是不是有点傻,希望得到大佬的解答,谢谢。

    17 回复  |  直到 2019-01-17 19:06:03 +08:00
        1
    sagaxu   326 天前 via Android
    不支持 php 很奇怪吗,leetcode 也不支持 php 刷题啊
        2
    CTO   326 天前   ♥ 1
    @sagaxu 我第一次刷 leetcode , 找了半天没有 PHP,差点一口老血喷出来,还好我有压箱底的 c :doge
        3
    visitant   326 天前 via iPhone
    我记得,php 会限制进程运行时间,可能跟这个有点关系?
        4
    troywinter   325 天前
    grpc 是通过 http2 协议通信的,可以从这个角度看看是否有完整的支持
        5
    clearT   325 天前 via iPhone
    @sagaxu 我是想知道不支持的原因是不是像上面我想的那样,现在微服务生态比较流行,php 微服务实现起来不方便,微博貌似是用 go 实现了一个 agent 来和 php-fpm 通信,我想请教的是如果用 swoole 实现一个 grpc server 是否需要向我上面说的那样自己实现路由功能,php 的微服务生态和 java 比有点差啊,好像 swoft 不错
        6
    clearT   325 天前 via iPhone
    @sagaxu 我现在是个学生还没有机会实践微服务,但我对这方面挺有兴趣的想学
        7
    sagaxu   325 天前 via Android   ♥ 1
    @clearT php 的 http2 支持的不好只是表象,根本原因是长期以来,大厂更喜欢用 C++和 Java 做底层服务,然后 PHP 调用这些服务做业务逻辑,所以有 client 支持就够了。

    以前 php 只有 fpm 一种姿势,并且现在仍然是 95%以上公司的选择,swoole 在国内很小众,在国外更小众。如果要支持 grpc,只能是 swoole 开发者主动去适配 grpc。swoole 团队的 grpc 支持,应该快了,他们现在都是全职开发 swoole 了。

    你选择了 PHP,就要面对现实,很多时候它都不是一等公民,PHP 支持的不好或者完全不支持,很常见,平常心对待。
        8
    clearT   325 天前 via iPhone
    @sagaxu 嗯,多谢解答,我还是很平常心的,不可能只学一门语言的,虽然我还没有达到那个层次,但我相信语言只是工具这句话绝不只是用来装 x 的,我还是希望 PHP 的生态能更好一些,毕竟它真正领我进入了编程的大门
        9
    DavidNineRoc   325 天前
    @sagaxu
    @CTO 大清亡了? LeetCode 已经支持 PHP 了,别在落后一百年了
        10
    sagaxu   325 天前 via Android
    @DavidNineRoc 加入 php 还不到一个月
        11
    sagaxu   325 天前 via Android
    @DavidNineRoc 准确的说,2019 年 1 月 10 号才开始支持的 PHP,不到一周
        12
    CTO   325 天前
    @DavidNineRoc 怎么张口就来啊,还落后一百年?
        13
    yanyandenuonuo   325 天前
    基于 swoole 可以实现 grpc,通常需要 2 个部分,一个前端 http gateway 去处理 http 请求,然后解析自定义的路由去转发到另一个对应的后端 rpc 服务。
        14
    to2false   323 天前
        15
    to2false   323 天前
    补充说明下,用 php 和 go 都互相测试过了
        16
    clearT   323 天前 via iPhone
    @to2false 这是 client,不是 server
        17
    to2false   323 天前 via iPhone
    @clearT 看过了?明明有 server 的 example
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2141 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 15:26 · PVG 23:26 · LAX 07:26 · JFK 10:26
    ♥ Do have faith in what you're doing.