hyperf 实现简单的jsonrpc和grpc

本文介绍了如何使用Hyperf框架实现JSONRPC和gRPC服务。首先,通过Docker部署并创建服务提供者和消费者。然后详细讲述了JSONRPC服务的配置,包括服务接口定义、服务类实现、服务消费者的创建以及控制器的编写和测试。接着,讨论了gRPC的基础概念和四种服务类型,并展示了在Hyperf中设置proto文件、生成代码、安装组件、编写服务方法和服务消费者的过程。
摘要由CSDN通过智能技术生成

hypefr简单介绍
在这里插入图片描述
这里使用docker安装一下hyperf
因为需要容器间通信 用docker创建自己的网络 这里我使用172.172.0.0/24创建hyperf网络
到时候创建hyperfy容器的时候 使用
在这里插入图片描述
这个范围内的网络

docker run --name hyperfServer\
-v /home/wwwroot/default/hyperf1:/data/project \
-p 9505:9505 -itd \
--privileged -u root \
--entrypoint /bin/sh \
--network hyperf --ip 172.172.0.2 \
hyperf/hyperf:7.4-alpine-v3.11-swoole
docker run --name hyperfClient \
-v /home/wwwroot/default/hyperf2:/data/project \
-p 9506:9506 -itd \
--privileged -u root \
--entrypoint /bin/sh \
--network hyperf --ip 172.172.0.3 \
hyperf/hyperf:7.4-alpine-v3.11-swoole

在这里插入图片描述
为什么要创建2个呢
服务有两种角色,一种是 服务提供者(ServiceProvider),即为其它服务提供服务的服务,另一种是 服务消费者(ServiceConsumer),即依赖其它服务的服务,一个服务既可能是 服务提供者(ServiceProvider),同时又是 服务消费者(ServiceConsumer)。而两者直接可以通过 服务契约 来定义和约束接口的调用,在 Hyperf 里,可直接理解为就是一个 接口类(Interface),通常来说这个接口类会同时出现在提供者和消费者下。
这里把hyperfClient容器当做服务消费者 hyperfServer容器当做服务提供者
先进入到hyperfClient容器 安装hyperf
composer create-project hyperf/hyperf-skeleton hyperfClient 在这里插入图片描述
其他组件看需要安装
先使用jsonRpc
hyperfServer容器同理
composer create-project hyperf/hyperf-skeleton hyperfServer

启动一下hyperfClient 容器内启动和宿主机启动都可以 在启动hyperf之前因为hyperfClient 端口是9506
需要修改一下 hyperfClient /config/server.php下的监听端口为9506 默认是9501 在执行
php bin/hyperf.php start
访问一下 ip加端口
在这里插入图片描述
HyperfClient 启动成功
由于 Hyperf 是持久化的 CLI 框架,当您修改完您的代码后,通过 CTRL + C 终止当前启动的进程实例,并重新执行 php bin/hyperf.php start 启动命令即可。为了方便后面的修改代码不用每次都重启安装一下hyperf的Watcher热更新组件

JSON RPC 服务
JSON RPC 是一种基于 JSON 格式的轻量级的 RPC 协议标准,易于使用和阅读。在 Hyperf 里由 hyperf/json-rpc 组件来实现,可自定义基于 HTTP 协议来传输,或直接基于 TCP 协议来传输。

hyperfServer修改监听端口9505开始编写服务提供代码

1.1定义服务提供方式端口
app/config/server.php 使用jsonRpc方式
composer require hyperf/rpc-server

return [
    'mode' => SWOOLE_PROCESS,
    'servers' => [
        [
            'name' => 'jsonrpc-http',
            'type' => Server::SERVER_HTTP,
            'host' => '0.0.0.0',
            'port' => 9505,
            'sock_type' => SWOOLE_SOCK_TCP,
            'callbacks' => [
                Event::ON_REQUEST => [\Hyperf\JsonRpc\HttpServer::class, 'onRequest'],
            ],
        ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值