本文主要介紹怎麼用consul提供的http的api來實現php與consul之間的通訊,實現服務的註冊與發現。
首先官方api:
其次我實現的**:
上圖中資料夾consul之外的php檔案是實現的部分功能內有注釋,例如註冊方法:
<?php
/** * created by 20.
* user: 20
* 服務註冊
*/define('base_path', __dir__);
include base_path . '/consul/agent.php';
//eg:
//判斷當前協議
$http_type = 'http://';//當前協議是http或https
$secure = 'secure=false';//是否是https協議,https:secure=true
//ip,port預設是本機
$ip = '127.0.0.1';//$_server['server_addr']
$port = 80;$_server['server_port']
$name = 'win1';//自定義
$id = 'win1-7'.$port;//自定義
$tags = array( $secure );//服務的tag,自定義增加值,可以根據這個tag來區分同乙個服務名的服務
$healthcheckip = $http_type.$ip;//健康檢查ip預設與註冊一樣,但需拼接協議,如不同可修改
$healthcheckport = 80;
$healthcheckpath = 'health.php';//健康檢查path,如consul/health
$interval = '10s';//健康檢查間隔
$agent = new consul\agent(array(
'host' => ''
));$res = $agent->registerservice($id, $name, $ip, $tags, $port, $healthcheckip, $healthcheckport, $healthcheckpath, $interval);
echo "";
var_dump($res);
其他用到的可根據我的呼叫方式自行實現,多看下官方的api這些就變得簡單了。 consul服務註冊
這是定義服務的根級引數。您可以指定引數來配置服務。範圍描述 預設必需的 id 指定服務 id 的字串值。如果未指定,name將使用該字段的值。每個節點的服務必須具有唯一的 id,因此如果預設值name會與其他服務衝突,您應該指定唯一的值。name引數值 可選的name 指定服務的名稱。如果id未指定...
Consul服務註冊中心 Consul工作原理
consul工作原理如下圖所示 當服務producer啟動時,會將自己的ip host等資訊通過傳送請求告知consul,consul接收到producer的註冊資訊後,每個10s 預設 會向producer傳送乙個健康檢查的請求,檢驗producer是否監控。當consumer請求producer...
服務註冊之Consul
consul是hashicorp公司推出的開源工具,consul由go語言開發,部署起來非常容易,只需要極少的可執行程式和配置檔案,具有綠色 輕量級的特點。consul是分布式的 高可用的 可橫向擴充套件的用於實現分布式系統的服務發現與配置。consul的應用場景包括服務發現 服務隔離 服務配置 這...