一、安装 consul 服务
docker pull consul
docker run --name=consul -p 8500:8500 -e CONSUL_BIND_INTERFACE=eth0 -d consul
安装并启动成功后访问:http://本机IP:8500/
二、服务提供者
2.1、启动服务提供者容器
// 本地 D:\phpstudy_pro\WWW 目录创建一个 hyperf 项目作为服务提供者
composer create-project hyperf/hyperf-skeleton hyperf-db
// 基于hyperf镜像生成容器
docker run --name hyperf -v D:\phpstudy_pro\WWW\hyperf-db:/data/project/hyperf-db -p 9501:9501 -it --privileged -u root --entrypoint /bin/sh hyperf/hyperf:7.4-alpine-v3.11-swoole
cd data/project/hyperf-db
// 安装统一接入层
composer require hyperf/service-governance
// 选择安装对应的适配器(这里用consul)
composer require hyperf/service-governance-consul
composer require hyperf/service-governance-nacos
// 安装 JSON RPC 服务
composer require hyperf/json-rpc
// 安装 JSON RPC 服务端
composer require hyperf/rpc-server
// 安装 JSON RPC 客户端
composer require hyperf/rpc-client
// 安装 consul 组件
composer require hyperf/consul
// 发布 consul 组件配置到 app
php bin/hyperf.php vendor:publish hyperf/consul
2.2、定义 JSON RPC Server
'servers' => [
[
'name' => 'http',
'type' => Server::SERVER_HTTP,
'host' => '0.0.0.0',
'port' => 9501,
'sock_type' => SWOOLE_SOCK_TCP,
'callbacks' => [
Event::ON_REQUEST => [Hyperf\HttpServer\Server::class, 'onRequest'],
],
],
[
'name' => 'jsonrpc-http',
'type' => Server::SERVER_HTTP,
'host' => '0.0.0.0',
'port' => 9504,
'sock_type' => SWOOLE_SOCK_TCP,
'callbacks' => [
Event::ON_REQUEST => [\Hyperf\JsonRpc\HttpServer::class, '