gRPC快速安装

猴子请来的救兵猴子请来的救兵 -
gRPC快速安装
需要如下软件支持:php-grpc扩展php-protobuf扩展protoc命令行工具grpc_php_plugin模板生成工具swoole开启openssl,http2一、安装1. 编译安装 grpc 扩展 (注意 grpc 版本对应的 protobuf 版本号)

image.png

2. 下载解压缩
wget http://pecl.php.net/get/grpc-1.30.0.tgz
tar xvf grpc-1.30.0.tgz
cd grpc-1.30.0

编译安装

/usr/local/php/72/bin/phpize
./configure --with-php-config=/usr/local/php/72/bin/php-config
make && make install

配置php.ini

vim /usr/local/php/etc/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/grpc.so

重启php服务

/etc/init.d/php-fpm reload
2. 编译安装 protobuf 扩展

下载解压缩protobuf

wget http://pecl.php.net/get/protobuf-3.12.2.tgz
tar xvf protobuf-3.12.2.tgz
cd protobuf-3.12.2

编译安装

/usr/local/php/72/bin/phpize
./configure --with-php-config=/usr/local/php/72/bin/php-config
make && make install

配置php.ini

vim /usr/local/php/etc/php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/protobuf.so

重启php服务

/etc/init.d/php-fpm reload
3. 重新编译安装swoole
 ./configure --enable-openssl --with-openssl-dir=/usr/local/opt/openssl 
 --enable-http2 --with-php-config=/usr/local/php/bin/php-config
4. grpc_php_plugin模板生成工具(用源码安装会有翻墙问题,直接搜编译好的文件)5. 最后一步,测试

mkdir grpc目录

创建grpc.proto文件

syntax = "proto3";

package grpc;

service Hi {
    rpc sayHello (HiUser) returns (HiReply) {
    }
}

message HiUser {
    string name = 1;
    int32 sex = 2;
}

message HiReply {
    string message = 1;
    HiUser user = 2;
}

执行生成命令:

protoc -I=. grpc.proto --proto_path=grpc/ --php_out=grpc/ --grpc_out=grpc/ 
--plugin=protoc-gen-grpc=/usr/bin/grpc_php_plugin

最后,tree grpc,看效果,成功啦!😄

grpc
├── GPBMetadata
│   └── Grpc.php
└── Grpc
    ├── HiClient.php
    ├── HiReply.php
    └── HiUser.php
二、gRPC压测工具

下载安装:ghz工具包:https://github.com/bojand/ghz/releases

压测命令:

ghz -n 100 -c 10 --insecure --proto ./api.proto --call api.HelloWorld.Say 
 -d '[{"Message":"hello"},{"Message":"hi"}]' 127.0.0.1:9092

看效果:

Summary:
  Count:    10000
  Total:    1.80 s
  Slowest:    39.19 ms
  Fastest:    0.52 ms
  Average:    11.16 ms
  Requests/sec:    5545.06

Response time histogram:
  0.515  [1]    |
  4.383  [610]  |∎∎∎∎∎∎∎
  8.250  [1881] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  12.118 [3328] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  15.985 [2895] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  19.853 [1145] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  23.720 [93]   |∎
  27.588 [8]    |
  31.455 [17]   |
  35.323 [14]   |
  39.191 [8]    |

Latency distribution:
  10 % in 5.38 ms
  25 % in 8.27 ms
  50 % in 11.23 ms
  75 % in 13.87 ms
  90 % in 16.52 ms
  95 % in 17.75 ms
  99 % in 20.77 ms

Status code distribution:
  [OK]   10000 responses
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

后端phphyperfgrpc

扩展阅读

加个好友,技术交流

1628738909466805.jpg