首页 > 编程语言 >php 在laravel中集成grpc

php 在laravel中集成grpc

时间:2023-12-21 17:25:07浏览次数:48  
标签:laravel install grpc etcd php protobuf

在laravel中集成使用grpc

一、安装:

  1、macOS

    php扩展:pecl install grpc,pecl install protobuf

    protocbuf:brew install protobuf

    etcd:brew install etcd

  2、ubuntu:

    php扩展: pecl install grpc(如果遇到 [Makefile:1038: src/core/lib/compression/message_compress.lo] Error 1,先安装:sudo apt install zlib1g-dev),pecl install protobuf

   protocbuf:sudo apt install libprotobuf-dev protobuf-compiler

   etcd:sudo apt install etcd (配置文件环境变量格式,在/etc/default/etcd)

二、使用:

  1、laravel 安装依赖包

    composer install google/protobuf

    composer install grpc/grpc

  2、编写.proto文件

  3、通过protoc生命模版代码(参考:https://github.com/grpc/grpc/tree/master/src/php)

  4、生成的代码的命名空间不能修改,可以把生成的目录加到composer.json的autoload下 

         

  4、编写好的client和server,可用通过增加console/commands,通过artisan启动测试(后续可以通过supervisor维护进程)

  5、xxxClient.php是client端(php项目可以直接使用),xxxStub.php 是服务端(非php项目调用服务,是根据该文件中注册的名字请求服务的

三、ETCD:

  由于laravel没有提供注册服务的封装,可以参考go-zero或Hyperf,结合supervisor自己实现;另外etcd的php客户端应该是停更了,把etcd的接口贴出来供

  参考(https://github.com/etcd-io/etcd/blob/release-3.5/Documentation/dev-guide/apispec/swagger/rpc.swagger.json)

 

标签:laravel,install,grpc,etcd,php,protobuf
From: https://www.cnblogs.com/pk-tiger/p/17919501.html

相关文章

  • 0开始搭建laravel框架
    一.1.安装最新版本的Composer:(php配置了环境变量以后可以在cmd运行php命令)php-r"copy('https://install.phpcomposer.com/installer','composer-setup.php');"  //下载安装脚本- composer-setup.php -到当前目录phpcomposer-setup.php//执行安装过程php-r"unlin......
  • wp-config.php的配置文件
    <?php/***ThebaseconfigurationforWordPress**Thewp-config.phpcreationscriptusesthisfileduringthe*installation.Youdon'thavetousethewebsite,youcan*copythisfileto"wp-config.php"andfillinthevalues.**......
  • Windows phpstudy vscode Xdebug调试无效,无法监听,没有什么效果
    Windows phpstudy vscodeXdebug调试无效,无法监听,没有什么效果vscode正常,能启动,能标记,就是无法监听打印phpinfo(); Xdebug版本3打印的信息输入这里,找出对应PHPXdebug的dll文件Xdebug:Support—TailoredInstallationInstructions会出给检查结果,下面是我的再看看VSCODE插......
  • PHP本地进行API接口测试的实例
    最近写API接口,每写一个接口,我自己需要先测试一下,看有没有语法错误,请求的数据对不对,但是很多都是POST请求,没法直接在浏览器中打开链接进行测试,所以必须要有个可以在本地发HTTP请求的模拟工具,模拟一下数据请求。一开始我是这么干的,在本机wampserver运行目录下创建一个文件,在里边写Cu......
  • webmen等框架真的比php-fpm快吗?
    php-fpm+nginx代码<?phpusleep(100000);echo"helloworld";?>wrk-c200-t50-d10shttp://127.0.0.1/Running10stest@http://127.0.0.1/50threadsand200connectionsThreadStatsAvgStdevMax+/-......
  • ThinkPHP6 关于事件的简单应用
    一、序章ThinkPHP6的手册中关于【事件】章节的介绍都是直接文字说明,给出创建的类文件,并没有一个好的示例来进行补充说明。对于刚接触【事件】的同学在阅读理解上增加了一点点困难,本文就在此结合示例简单叙述下。 二、事件事件的使用分两种方式,一个是不使用事件类,另一个使用事......
  • Windows系统phpstudy+PbootCMS搭建网站记录
    环境Windows10phpstudyv8.1          下载地址:https://www.xp.cn/download.htmlPbootCMSv3.2.4  下载地址:https://www.pbootcms.com/安装phpstudy 官网下载安装包,直接安装,安装完成后如下:PHP默认安装版本为:php7.3.4nts添加PHP的sqlite3扩展不添加扩展访......
  • php+dm达梦数据库简单连接
    1.安装php准备php环境,下载phpstudy,自带php7.3.4nts,安装好以后如果系统环境变量没有配置要配置一下php的的系统环境变量2.安装达梦数据库win64+dmv8在达梦数据库的文件夹中选择合适版本的扩展文件复制到达梦的各版本扩展文件所在位置:php的扩展文件中php的扩展文件: 配置p......
  • 搭建lnmp环境-nginx关联php-fpm (第三步)
     永久关闭防火墙sudosystemctlstopfirewalldsudosystemctldisablefirewall 安装php扩展 php-fpmyum-y installphp-fpm systemctlstart php-fpm.servicesystemctlenable php-fpm.service  修改php-fpm用户/etc/php-fpm.d/www.conf新增用户:www(userad......
  • PHP获取访问者ip,判断是否属于数据库中可以访问的ip段
    理解了。下面是一个例子,演示如何使用PHP获取访问者IP,并与数据库中的IP地址段进行比较。在这个例子中,我将使用IP地址和子网掩码的方式存储IP段,同时对比IP地址是否在指定的范围内。数据库表结构:CREATETABLEip_access(idINTAUTO_INCREMENTPRIMARYKEY,netw......