项目发展到一定体量后,庞大的系统对开发和维护都带来很大的挑战.api网关就显得很重要了.
先搭建起环境,再来看看它具体给我们项目带来了什么.
安装
基于docker,前面文章 api网关kong安装
注意安装的2.0以上的kong用 konga管理, 本文也是
基础界面
看到界面陌生不要慌.一步步看
构建个可访问的api试试
先测试基础功能, 按步骤来, 设置个upstream > 设置个service > 设置个路由
1.启动服务
假设现我们有个输出i am hello字符串的服务,目前有2个进程或者服务器提供服务,有条件的可以用多台虚拟机或者物理机测试.
随便找个目录增加下面2个文件
hello1.php hello2.php
内容如下,随便写,只要能区分即可
<?php
echo "I am hello1/hello2";
?>
运行2个进程:
php -S 0.0.0.0:8001 hello1.php
//新打开个命令行界面
php -S 0.0.0.0:8002 hello2.php
分别访问 http://127.0.0.1:8001, http://127.0.0.1:8002 是否输出正常.
线上服务器这些服务端口只有内网可访问,不会暴露到外网,
- upstream
用于负载均衡,对应后端真实服务ip和端口,目前我们有1个服务,2个独立的进程提供后端服务. 那我们先来建立个hello的upstream
只用输个名字即可, 按自己习惯, 这里取名:helloUpstream
点击details进入详细界面
将刚刚创建的2个后端服务加入targets
- 新增服务
这个服务的概念是个大服务的概念,不是指一个api,而是一个集合, 后面来细说体会下,我们先创建个helloService, 将host设置为刚刚创建的helloUpstream
服务创建好了,现在我们可以去给他加些路由访问这个服务, 再次之前,我们为了个更好的模拟真实环境,我们修改下C:WindowsSystem32driversetchosts文件,增加
127.0.0.1 hello.demo.com
增加路由:
当然里面你可以加很多自己业务相关的参数, http://hello.demo.com:8000 就是我们给用户提供的访问地址,线上一般用的80端口,后面不加:8000