consul php端,PHP实现consul服务注册与服务发现-Go语言中文社区

本文主要介绍怎么用consul提供的HTTP的API来实现PHP与consul之间的通信,实现服务的注册与发现。

dc2ba903c5129e66952b6129e3a6d2b5.png

上图中文件夹Consul之外的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

if ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) {

$http_type = 'https://';

$secure = '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 ConsulAgent(array(

'host' => 'http://127.0.0.1:8500'

));

$res = $agent->registerService($id, $name, $ip, $tags, $port, $healthCheckIp, $healthCheckPort, $healthCheckPath, $interval);

echo "

";

var_dump($res);

其他用到的可根据我的调用方式自行实现,多看下官方的API这些就变得简单了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值