rpc配置
rpc服务:
- 仿照app\rpc 文件夹分别创建服务对应的Service/ *.Services文件和Lib/*.Interface文件
- 配置rpc服务app\bean.php的pool连接池和服务的参数
- 复制出RPC Interface文件到http服务机
'trade' => [
'class' => ServiceClient::class,
'host' => '127.0.0.1',
'port' => 18307,
'setting' => [
'timeout' => 0.5,
'connect_timeout' => 1.0,
'write_timeout' => 10.0,
'read_timeout' => 0.5,
],
'packet' => bean('rpcClientPacket'),
'provider' => bean(\App\Common\RpcProvider::class),
],
'trade.pool' => [
'class' => ServicePool::class,
'client' => bean('trade'),
],
'rpcServer' => [
'class' => ServiceServer::class,
'port' => 9801, // trade服务rpc端口为9801
'listener' => [
// 'http' => bean('httpServer'),
]
],
运行 php bin/swoft rpc:start
user服务:
trade服务:
http服务:
- 把Rpc服务机中的App\Rpc\Lib\*.Interface文件拷贝到http服务机的App\Rpc\Lib中
- 修改http服务配置 app\bean.php, 添加对应的服务到配置中
'httpServer' => [ 'class' => HttpServer::class, 'port' => 18307, // 这里要和rpc对应 'listener' => [ // 'rpc' => bean('rpcServer'), // 'tcp' => bean('tcpServer'), ], 'process' => [ // 'monitor' => bean(\App\Process\MonitorProcess::class) // 'crontab' => bean(CrontabProcess::class) ], 'on' => [ // SwooleEvent::TASK => bean(SyncTaskListener::class), // Enable sync task SwooleEvent::TASK => bean(TaskListener::class), // Enable task must task and finish event SwooleEvent::FINISH => bean(FinishListener::class) ], /* @see HttpServer::$setting */ 'setting' => [ 'task_worker_num' => 12, 'task_enable_coroutine' => true, 'worker_num' => 6, // static handle // 'enable_static_handler' => true, // 'document_root' => dirname(__DIR__) . '/public', ] ], 'user' => [ 'class' => ServiceClient::class, 'host' => '39.105.156.191', 'port' => 9803, 'setting' => [ 'timeout' => 0.5, 'connect_timeout' => 1.0, 'write_timeout' => 10.0, 'read_timeout' => 0.5, ], 'packet' => bean('rpcClientPacket') ], 'user.pool' => [ 'class' => ServicePool::class, 'client' => bean('user'), ], 'trade' => [ 'class' => ServiceClient::class, 'host' => '39.105.156.191', 'port' => 9801, 'setting' => [ 'timeout' => 0.5, 'connect_timeout' => 1.0, 'write_timeout' => 10.0, 'read_timeout' => 0.5, ], 'packet' => bean('rpcClientPacket') ], 'trade.pool' => [ 'class' => ServicePool::class, 'client' => bean('trade'), ], 'rpcServer' => [ 'class' => ServiceServer::class, 'listener' => [ 'http' => bean('httpServer'), ] ],
- 控制器中调用rpc 关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?