我司现在是使用 Go Server (gRPC),但是 PHP Client/Server 那边希望 IDL 能够互通
但是翻查了一圈,没发现 PHP Server 支持 Protobuf 的
想请教下大家有什么好的推荐,或方案呢? 🤔
1
cxh116 2018-08-22 21:27:21 +08:00 via Android
|
2
hanxiV2EX 2018-08-22 21:32:30 +08:00 via Android
Nginx 已经支持 protobuf 了
|
5
algery 2018-08-22 21:42:52 +08:00
Mark 等方案。。。
|
6
EDDYCJY OP @cxh116 Note that currently you can only create clients in PHP for gRPC services - you can find out how to create gRPC servers in our other tutorials, e.g. Node.js.
|
9
EDDYCJY OP @sagaxu http 适配器现在也有,但是大佬希望 PHP Server 也能走 RPC 且同个 IDL,保证技术栈的一致
|
10
hanxiV2EX 2018-08-22 22:10:46 +08:00 via Android
@EDDYCJY 没试过,今天搜 gRPC 的时候发现 Nginx 支持了,应该 PHP 可以直接用吧。
|
12
kkeiko 2018-08-22 22:37:56 +08:00
没有,不合适
|
13
hanxiV2EX 2018-08-22 23:58:19 +08:00 via Android
|
14
g079708 2018-08-23 08:14:38 +08:00 via iPhone
好像韩天峰用 swoole 在做这个事情。
|
15
EDDYCJY OP @hanxiV2EX 这个我昨晚有看到,但是看了下作者一年多没 commit 了,而且好像没什么人用过?需要找个时间试试
|
17
millken 2018-08-23 09:09:14 +08:00
我们用 swoole + protobuf 写过 GRPC 服务端,不过后来还是用 Go 重写了,微服务架构下,还是用 Go 来得方便。
|
18
hj2002007 2018-08-23 09:37:57 +08:00
zeroc ice 了解一下,多语言支持 客户端代码通过服务端提供的 Ice 对象 ID 连接服务端即可
|
19
qiujin 2018-09-03 14:22:15 +08:00
写过简单的 PHP Grpc Server,如果不涉及到数据流等在 fpm 环境下不适合实现的功能外,用 PHP 实现一个简单的 Grpc Server 还是可以的。
https://github.com/qiu-jin/phpegg/blob/master/framework/core/app/Grpc.php |
20
EDDYCJY OP @millken 您好,请问之前你们用的 Swoole + Protobuf 的 gRPC Server 的具体实现,有地方可以看看代码怎么实现的吗?
|
21
millken 2018-10-24 16:50:10 +08:00
|
22
onanying 2020-06-24 10:02:17 +08:00
http://openmix.org/ 开发的 Mix gRPC,并且使用 golang 开发了 protoc 的插件,能直接生成基于 Swoole 协程的 Server/Client,与 Golang 编写微服务体验一致,无框架依赖的通用 PHP gRPC 库: https://github.com/mix-php/grpc
|