设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 创业者
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

浅谈PHP微服务集群搭建(3)

发布时间:2019-09-18 20:24 所属栏目:21 来源:Jochen
导读:app 容器为 Web 应用,部署了一个 Hyperf 项目并对外提供 HTTP 服务。例如,在 App\Controller\IndexController 控制器里有 add 方法: publicfunctionadd(AdditionService$addition) { $a=(int)$this-request-inpu

app 容器为 Web 应用,部署了一个 Hyperf 项目并对外提供 HTTP 服务。例如,在 App\Controller\IndexController 控制器里有 add 方法:

  1. public function add(AdditionService $addition) 
  2.   $a = (int)$this->request->input('a', 1); # 接受前端用户参数 
  3.   $b = (int)$this->request->input('b', 2); 
  4.  
  5.   return [ 
  6.     'a' => $a, 
  7.     'b' => $b, 
  8.     'add' => $addition->add($a, $b) # RPC调用 
  9.   ]; 

在 App\JsonRpc\AdditionService 中 add 的实现:

  1. class AdditionService extends AbstractServiceClient 
  2.     /** 
  3.      * 定义对应服务提供者的服务名称 
  4.      * @var string 
  5.      */ 
  6.     protected $serviceName = 'AdditionService'; 
  7.  
  8.     /** 
  9.      * 定义对应服务提供者的服务协议 
  10.      * @var string 
  11.      */ 
  12.     protected $protocol = 'jsonrpc-http'; 
  13.  
  14.     public function add(int $a, int $b): int 
  15.     { 
  16.         return $this->__request(__FUNCTION__, compact('a', 'b')); 
  17.     } 

继承了 AbstractServiceClient 即可创建一个微服务客户端请求类,Hyperf 在底层帮我们实现了与 Consul 和服务提供者交互的细节,我们只要 AdditionService 类里的 add 方法即可远程调用 microservice-1 和 microservice-2 提供的服务。

至此,PHP 微服务集群搭建就完成了!

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读