>  기사  >  백엔드 개발  >  서비스 간 통신 RPC에 대한 자세한 소개

서비스 간 통신 RPC에 대한 자세한 소개

不言
不言앞으로
2018-12-29 10:19:183958검색

이 글은 서비스 간 RPC 통신에 대해 자세히 소개한 내용입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

마이크로서비스는 현재 널리 보급되어 있으며 서비스 간 통신에는 Api와 Rpc라는 두 가지 방법이 있을 수 있습니다.

다음 두 가지 예를 통해 Api와 Rpc의 차이점을 이해할 수 있습니다.

Liezi 1. 글의 추가, 삭제, 수정, 확인이 가능합니다.

Api 구현:

Router::get('/article/{id}','ArticleController@get');
Router::post('/article','ArticleController@create');
Router::put('/article/{id}','ArticleController@edit');
Router::delete('/article/{id}','ArticleController@delete');

그런 다음 컨트롤러 기사에서 모델

return Article::find($id)->toArray();

Rpc를 호출하여

RpcServer::add('Article');

그렇습니다. 코드 한 줄

Liezi 2 계산기

머신 A를 가정해 보겠습니다. 위의 계산기 카운터는 Rpc 형태로 다른 머신에 제공됩니다.

계산기 카운터 코드

class Counter
{

    private $i = 0;

    public function __construct($i = 0)
    {
        $this->i = $i;
    }

    // 加法
    public function add($v)
    {
        $this->i += $v;
        return $this;
    }

    // 减法
    public function sub($v)
    {
        $this->i -= $v;
        return $this;
    }

    // 乘法
    public function mul($v)
    {
        $this->i *= $v;
        return $this;
    }

    // 除法
    public function p($v)
    {
        $this->i /= $v;
        return $this;
    }

    // 获取结果
    public function get()
    {
        return $this->i;
    }
}

Rpc 구현

RpcServer::add('Counter');

Rpc 클라이언트 호출

$c = new ClientCounter(10);
echo $c->add(3)->mul(2)->sub(10)->p(5)->get();

위 내용은 서비스 간 통신 RPC에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제