swoole
10年老码农
10年IT从业经验,从事java、PHP后台、物联网开发工作。
展开
-
hyperf2.2把服务注册到服务中心例子
看了官方文档,有点蒙。因为它只提供了自己框架的示例。没有提供可以跑起来的示例。今天,我就写一个。1.安装consul去consul官网下载consul,网扯:Consul by HashiCorp下载完成后,把它跑起来,如下图consul自带一个web管理面版,地址是 127.0.0.1:8500。当看到这个web管理面版,说明它已经跑起来了。2.把服务注册到consulhyperf2.2把服务注册到consul很简单,只需要在注解中,加上publishTo="co...原创 2021-09-19 09:51:22 · 700 阅读 · 0 评论 -
Method not found.[80] in /www/wwwroot/hyperf_consumer/vendor/hyperf/rpc-client/src/ServiceClient.php
hyperf2.2微服中,当某个服务不存在时,就会爆出方法不存在,错误如文章标题。(我还没有加上服务熔断之类的)从stock trace原创 2021-09-19 00:32:11 · 847 阅读 · 3 评论 -
Uncaught GuzzleHttp\Exception\ConnectException: Connection timed out in /www/wwwroot/hyperf
今天尝试了微服务,结果启动hyperf时,不断的刷出超时信息。如图看到Stack trace 里的信息,可以看到是因为consul/client引起的。#7 /www/wwwroot/hyperf/vendor/hyperf/consul/src/Client.php后面去检查consul地址是竟然是127.0.0.1,大意了。因为我的consul服务器,并不和服务提供者同一个ip。后面改了,启动就没bug了。小结:像hyperf框架如果出现GuzzleHttp\Exc...原创 2021-09-19 00:10:33 · 3076 阅读 · 0 评论 -
Invalid protocol of registry consul[197] in /www/wwwroot/hyperf_consumer/vendor/hyperf/rpc-client/sr
在用hyperf2.2做微服务时报了这个错误,从字面理解上看,它说是无效的consul协议?微服务,我用了consul 做为注册中心,如下图。所以hyerpf2.2在启动时,用di去实例化这个类,并注册时,没有找到对应的组件来处理这个协议,所以就报无效了。所以用composer安装一下就可以解决了composer require hyperf/service-governance-consul...原创 2021-09-18 23:56:29 · 406 阅读 · 0 评论 -
hyperf2.2 rpc 多服务提供者配置示例
1.首先定义多个服务的接口与服务实现类,分别是Order,Goods,Calculator。2.具体实现服务,我就返回 简单字符串,其他类也是类似代码。一、服务消费者的配置1.config/autoload/service.php下的配置2.调用服务3.测试,出结果了...原创 2021-09-18 18:41:33 · 399 阅读 · 0 评论 -
hyperf2.2 @rpcserver写到类注释里,注解还会生效嘛?
hyperf采用了注解方式来生成实例。但我们常常喜欢给类、方法加上注释,那么类、或方法的注释,会影响hyperf的注解嘛?今天我就测试下,如下图,我给类加上rpc,并在方法index里返回 “订单列表”我在消费端调用它用postman测试了下,结果出来了。...原创 2021-09-18 17:02:30 · 252 阅读 · 0 评论 -
hyperf2.2.0一个完整的手动创建消费者微服务示例
服务提供者在app目录下,建一个JsonRpc目录。1 定义一个 “契约”,即接口CalculatorServiceInterfacenamespace App\JsonRpc;interface CalculatorServiceInterface{ public function add(int $a, int $b): int;}2 建一个具体的业务类代码,即对外提供什么服务。namespace App\JsonRpc;use Hyperf\RpcSe.原创 2021-09-06 00:15:32 · 573 阅读 · 1 评论 -
Error while injecting dependencies into App\Controller\IndexController: No entry or class found for
hyperf 2.2.0 微服务 手动创建服务消费者类时报错。在官网的文档,手动创建消费者类时,它的services.php 推荐配置是这样的。<?phpreturn [ // 此处省略了其它同层级的配置 'consumers' => [ [ // 对应消费者类的 $serviceName 'name' => 'CalculatorService', // 这个消费者要从哪个原创 2021-09-05 23:44:47 · 2972 阅读 · 0 评论 -
hyperf 查出数据后,怎么修改或追加数据?
我们的业务系统中,有时会有这样的应用场景:要把这个status:1 转成文字,比如status :1 表示,启用。那么怎么把 status_text:启用 追加到数据里?同时保留到这个 status:1 ?在hyperf 中,orm 提供了访问器。但访问器,它并不能保留status:1。它一般是这样写的查了网上的资料,大多数网友处理方法是:查出数据,toArray()成数组,然后循环改(追加)数组里的数组。但我在想,有没有更加优雅的写法呢?如thinkphp中 ,在模型里有 appen.原创 2021-08-15 12:57:51 · 1226 阅读 · 2 评论 -
hyperf2.1 unique:table,column,except,idColumn 怎么传入排除的id?
用hyperf的验证规则,这个和tp,laravel 类似,用熟了就觉得简单了。但对于首次用的同学来说,有时还是会踩坑的,且文档上没有相应的代码示例,百度上也没有找到例子。所以基础的东西,我觉得还是有必要写写。如题,在验证 unique 时,怎么传入排除掉一个ID呢,如编辑时,自己的ID。验证器,也是一个FormRequest,所以可以用 this->getInputData() 获得。然后这样组装验证规则'username'=>'required|max:50|.原创 2021-08-07 23:35:13 · 302 阅读 · 0 评论 -
hyperf2.1 验证器-我的踩坑之路
其实hyperf2.1的验证器,已经足够简单,按着文档照着做,应该可以弄出来。我也是按文档来做1.生成FormRequest,并写上规则2.在controller里通过参数注入方式验证3.加上中间件,加上异常类5.发布组件6.在postman 里填写参数,设username 为空,然后测试。7.调试打印出来的,竟然为空百思不得其解,百度了许久,同时也问了官方群里的群友,但都没有得到正确回答。后面我自己一步步,一行行代码的找找到坑了,这...原创 2021-08-07 10:22:30 · 1361 阅读 · 0 评论 -
hyperf 安装组件版本冲突怎么处理,以分页器paginator为例
今天继续玩hyperf,需要用到分页组件,按官方composer require hyperf/paginator但提示我其他依赖,版本也需要2.2.0,如hyperf/contract ~2.2.0。怎么办呢?两个办法:1.去composer.json 里,把contract v2.1.16 改成2.2.0,但一改,其他依赖又爆一堆错。2.composer 指定的版本,那指定那个版本?去它的github看下release有好多个版本,那命令怎么打呢?在后面指定版本即...原创 2021-08-03 18:19:23 · 762 阅读 · 0 评论 -
安装hyperf-swoole新手教程
本文章只是记录踩坑点,具安装步骤还是去官网看文档为妥。1、首先在swoole官网下载swoole,因为我太懒,所有直接截图官网的步骤了。2、把一些PHP相关的扩展也装上,如hyperf官网要求。这里我也懒直接用bt一键安装完事。3、接着按要求composer create-project hyperf/hyperf-skeleton了,它会提示步骤,然后按yes就可。但过了一会,它提示我少了拓展,一查hyperf 原来它的redis client需要PHP redis拓展。...原创 2021-07-14 00:05:43 · 715 阅读 · 0 评论 -
pecl 安装 swoole ?但找不到phpize
swoole 出来好多年了,一年前也源码安装过,但没试过pecl安装。看了官方介绍,我觉得很简单,没想到踩坑了。pecl是这样安装的pecl install swoole//查看使用的php.ini php -i |grep php.iniextension=swoole.so//查看安装是否成功,如果安装成功,会输出swoolephp -m | grep swoole但在用pecl时,我们是不是少了它没有装?现在装上//下载php安装pecl脚本wget ht原创 2021-07-12 23:49:02 · 539 阅读 · 3 评论 -
swoole-simps自搭mqtt服务器,完美实现订阅,发布并存到mysql
服务端A(没贴图出来)订阅端B发布端C实现的功能:C端上报数据,通过mqtt服务器A,订阅端B拿到数据,并存到mysql。(左边是订阅,右边是发布)原创 2020-08-13 23:11:47 · 1527 阅读 · 3 评论 -
使用swoole 怎么把http 请求转成消息,推到tcp里,web控制物联网硬件。
两种文案。1、使用easyswoole,具体请到其官网看文档。 ServerManager::getInstance()->getSwooleServer()2、swoole开一个websocket主服务,再加一个tcp子服务。详情看swoole的文档。本人测试如下:如有不懂,可私聊我。...原创 2020-05-02 05:33:27 · 727 阅读 · 0 评论 -
重新安装swoole 后libhiredis.so.0.13: cannot open shared object file: No such file or directory
在试了官网上的办法无效后,可以试试下面这个。安装完 swoole 后出现 libhiredis.so.0.13: cannot open shared object file: No such file or directory in Unknown on line 0,缺少动态库,也可以这样 1步. vim /etc/ld.so.conf 2步 添加 /usr/local/lib 3步 sudo...原创 2018-06-30 19:07:59 · 1731 阅读 · 0 评论 -
重新编译swoole 异步Redis客户端
重新编译swoole时遇两个问题1、找不到swoole2、安装时未提示安装 installing header files:xxxxx问题1产生的原因是在PHP.INI文件中,我扩展是这样写的extension=swoole后来在php -m时也能看到swoole,所以一直没放心上。但在重新编译时swoole的redis客户端时,就产生问题了。死活找不到swoole,后来百度到了一个写法,是这样...原创 2018-06-18 08:36:02 · 538 阅读 · 0 评论 -
linux centos7 下安装swoole扩展
swoole是一种PHP高级Web开发框架,框架不是为了提升网站的性能,而是为了提升网站的开发效率,以最少的性能损耗,换取最大的开发效率。环境:centos 7php 版本:php7.2swoole版本: 2.0.6我的php7安装目录是在:/usr/local/php7[root@dev src]# wget http://pecl.php.net/get/swoole.tgz[root@dev...原创 2018-04-28 09:59:49 · 2275 阅读 · 0 评论