你们公司一般都用哪个 RPC 框架还是自己的轮子?

2016-12-01 16:13:10 +08:00
 twogoods
6660 次点击
所在节点    程序员
26 条回复
update
2016-12-01 16:21:22 +08:00
yar
gemini
2016-12-01 16:27:44 +08:00
都有吧。公司内部都有好多框架,开源的也很多,主要还是看业务场景吧。

//楼主光抛问题不分享自己的场景,噻~~
crytis
2016-12-01 16:45:09 +08:00
改装的 dubbo
jlak0106
2016-12-01 16:50:59 +08:00
dubbo
VeryEase
2016-12-01 16:51:50 +08:00
我来看看有多少人用 grpc 的......
0915240
2016-12-01 16:53:04 +08:00
@VeryEase 上次弄了下 没搞好。
murmur
2016-12-01 16:56:42 +08:00
xmlrpc
9hills
2016-12-01 17:00:28 +08:00
某个模块, thrift ,大约几万 qps
orderc
2016-12-01 19:13:06 +08:00
php-yar
Tom008
2016-12-01 20:27:17 +08:00
thrift
sagaxu
2016-12-01 21:30:35 +08:00
rpc 作为经典的 KPI 项目,而且难度小容易实现,轮子必须非常多
zuoxiaomo
2016-12-01 21:44:07 +08:00
自己早的轮子呀
zuoxiaomo
2016-12-01 21:45:14 +08:00
@Tom008 thrift 还是不错的,之前公司的一个产品用的就是这套
gouchaoer
2016-12-01 21:49:07 +08:00
用 yar 的我问一下,我一直不明白 rpc 调用对 http api 的优势在哪里。。。。
你们觉得 yar 的那个 php-cli 开着一个命令行的 php server 靠谱么,既然 yar 也是用的 http ,那速度和我直接正常的写个 http api 没有区别啊,而且 http api 还更成熟
crossoverJie
2016-12-01 21:55:23 +08:00
用 dubbo 的还是挺多的 我们用 dubbo 和 thrift
sagaxu
2016-12-02 06:51:34 +08:00
@gouchaoer cli 起的服务,相比 fpm 这种更容易实现 php 层面的持久化,比如说你框架有 200 行 php 的初始化逻辑, fpm 方式下每个 http 请求都要初始化一下, cli 起的只要初始化一次。未来的 PHP 或许会渐渐淘汰 fpm 这种方式,每个请求都简单粗暴重来一次已经越来越跟不上时代了。
orderc
2016-12-02 09:12:52 +08:00
@gouchaoer 场景不同, yar 用于内部系统服务化,远程类直接当做本地类使用,调用方便。 http api 提供给外部调用,通常需要认证。
gouchaoer
2016-12-02 09:31:21 +08:00
@sagaxu
@orderc
内部系统那也撑不住大流量啊,你想那只是一个单进程 php-cli ,而 php-cli 长期驻内存稳定性不好说。

而且 php-cli 的 socket 做的 server , workerman 、 swooole 之类的,性能并不一定比 php-fpm 的强:

http://rango.swoole.com/archives/254

所以说就算本地内部使用,你没 log ,没并发,没负载均衡,没阻塞,没失败从启,那用 yar 之类的 rpc 我也没看到啥优势。。。无非就是函数调用更接近语言本身,还有就是传输的内容压缩过,但是这 2 点根本不是痛点,所以依然搞不懂 rpc 的优势在哪里
orderc
2016-12-02 09:46:50 +08:00
@gouchaoer yar 是基于 curl ,写的程序和普通 PHP 程序一样,由 php-fpm 执行,不需要 php-cli ,和 workerman 、 swoole 等需长驻内存的不一样。
sagaxu
2016-12-02 10:16:58 +08:00
@gouchaoer yaf 是 C 写的,框架本身是常驻内存的, swoole 框架只有底层核心部分是 C 写的,上层还有 php ,所以两者性能上面差距不大。而 yii 是纯 php 框架里最快的之一,它却比那两个慢好几倍,这正是常驻内存的价值体现。

除了框架自身开销,我们还会有一堆业务上的初始化逻辑,这是 fpm 的梦靥,除非你业务逻辑初始化也用 C 做成扩展。

cli 也不一定是单进程,比如 swoole 可以开多进程,充分利用多核性能。 qps 过万的时候,甚至连同机房 redis 的访问都嫌慢。

至于 cli 常驻靠不靠谱,我觉得可能不如 python/Java 这样经过十年以上检验的可靠,但是 php 不也一直在改善么?

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

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

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

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

© 2021 V2EX