加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

浅谈PHP微服务集群搭建

发布时间:2019-09-18 23:57:13 所属栏目:建站 来源:Jochen
导读:近些年微服务架构大行其道,趁着最近有时间,来捣鼓捣鼓微服务是怎么一回事。 微服务架构 微服务的概念由 Martin Fowler 于2014年3月提出: 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最

app 容器为 Web 应用,部署了一个 Hyperf 项目并对外提供 HTTP 服务。例如,在 AppControllerIndexController 控制器里有 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.   ]; 

在 AppJsonRpcAdditionService 中 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 微服务集群搭建就完成了!

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读