php实战kong做微服务架构三(注册服务)
·
php实战kong做微服务架构三(注册服务)
序言
本节将使用php实现服务注册,简单梳理下流程:
- 事先开启kong
- php使用curl请求kong给管理员预设的指定地址与端口
- 传入指定参数,注册服务
源代码
<?php
/**
* 注册服务
* @author: 飘逸的罗伯特
*/
/*
$api_data = [
'name' => 'goods1',
'uris' => '/goods1.html',
'methods' => 'POST',
'upstream_url' => 'http://hz12.cn/goods'
];
*/
$api_data = [
'name' => 'goods3', //服务名称
'uris' => '/goods3.html', //URI前缀列表。例如:/my-path
'methods' => 'GET', //HTTP方法列表。例如:GET,POST
'upstream_url' => 'http://hz12.cn/goods' //指向您的API服务器的基本目标URL
];
var_dump(http_request('http://hz12.cn:8001/apis', $api_data));
/**
* 发送post请求
* @param [string] $url 请求地址
* @param [array] $postdata post参数
* @return [string] 注册信息
*/
function http_request($url, $postdata=[]){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
运行注册程序的结果

查看所有注册信息

dashboard查看

查看刚刚注册的服务信息

访问服务
请求
http://hz12.cn:8000/goods3.html
或
http://hz12.cn:8000/goods3

过程中遇到的问题与解决方法
外部请求8001与8000端口失败
kong默认监听127.0.0.1,所以默认可以在本地玩
解决方法:服务器看情况开启这两个端口,比如我要演示,得开启,写完文章就关掉~~~
修改配置文件:vi /etc/kong/kong.conf
proxy_listen = 0.0.0.0:8000, 0.0.0.0:8443 ssl
admin_listen = 0.0.0.0:8001, 0.0.0.0:8444 ssl
重启:kong restart -c /etc/kong/kong.conf
查看监听的端口对应地址,现在可以正常访问了

更多推荐
所有评论(0)