您当前的位置: 首页 > 

苗先生的PHP记录

暂无认证

  • 0浏览

    0关注

    190博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

swoft 2启动rpc

苗先生的PHP记录 发布时间:2022-04-02 02:02:27 ,浏览量:0

rpc配置

 

rpc服务:
  1. 仿照app\rpc 文件夹分别创建服务对应的Service/ *.Services文件和Lib/*.Interface文件
  2. 配置rpc服务app\bean.php的pool连接池和服务的参数
  3. 复制出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服务:
  1. 把Rpc服务机中的App\Rpc\Lib\*.Interface文件拷贝到http服务机的App\Rpc\Lib中
  2. 修改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'),
            ]
        ],

  3. 控制器中调用rpc 
                
关注
打赏
1665468453
查看更多评论
0.8834s