Swoole简单实现RPC原理

什么是RPC

RPC全称Remote Procedure Call,中文译为远程过程调用,其实你可以把它理解为是一种架构性上的设计,或者是一种解决方案。
通过RPC我们可以像调用本地方法一样调用别的机器上的方法,用户将无感服务器与服务器之间的通讯。RPC在微服务当中起到相当大的作用.

常用操作

查看当前8887端口下的进程id,以便kill掉进程

netstat -nap |grep 8887

在这里插入图片描述

不占用面板的方式启用swoole的server服务

nohup php swoole_server.php user >/dev/null 2>&1 &

swoole_server.php

<?php
//创建tcp服务
$serv = new swoole_server('127.0.0.1', 8887);
$serv->set(array('worker_num' => 2));
$serv->on("receive", function ($serv, $fd, $from_id, $data) {
    
    
    //$data 接受客户端发送的数据
    $data = json_decode($data, true);
    $site = $data['site'];
    $action = $data['action'];
    $result['site'] = $site;
    print_r($result);
    $result['action'] = $action;
    //给客户端发送数据
    $serv->send($fd, json_encode(['data' => $result]));
});
$serv->start();

swoole_client.php

<?php
//客户端:
$cli = new swoole_client(SWOOLE_SOCK_TCP);
$cli->connect('127.0.0.1', 8887);
$data=json_encode(['site'=>'user','action'=>'index']);
$cli->send($data);
$result=$cli->recv();//接收消息
$cli->close();
var_dump($result);

结果页

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39218464/article/details/113784897
今日推荐