Kong的Service和Route實戰
本文目標:實踐Kong的service和route基礎配置功能,實現簡單的API接口代理功能。
-
實踐環境:
- 虛擬機環境:CentOS7 192.168.175.130
- 開發機環境:Win7
-
前期準備:
? 把windows和CentOS的hosts都添加如下的修改:
192.168.175.130 aaa.com 192.168.175.130 bbb.com
-
基礎流程:
- 把一臺主機綁定兩個域名,在主機上啟動兩個獨立的服務,通過Kong的80端口對外提供服務。
編寫測試用的微服務
這里我們使用SpringBoot 完成一個測試API,代碼如下:
@RestController
@SpringBootApplication
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class, args);
}
@RequestMapping("/v1/user/get")
public String get(HttpServletRequest request) {
return "Hi, man, this is user one ====> " + request.getRequestURL();
}
// 這個方法用來查看Kong轉發到Java這邊的URL信息
@RequestMapping("/**")
public String defaultValue(HttpServletRequest request){
return "default : " + request.getRequestURL();
}
}
使用命令行工具 mvn clean package
生成jar
包后,把包放到CentOS服務器。
使用下列的命令啟動兩個服務:
nohup java -Xms32m -Xmx64m -jar user-0.0.1-SNAPSHOT.jar --server.port=9000 &
nohup java -Xms32m -Xmx64m -jar user-0.0.1-SNAPSHOT.jar --server.port=9001 &
首先測試直接通過9000、9001端口的正常可用性。
配置Kong的Service
打開konga后臺管理畫面,打開Service,
我們這里新建一個Service.
按圖所示, 我們輸入9000端口使用的服務
http://localhost:9000/
。然后,點擊畫面底圖的 SUBMIT SERVICE
,完成服務新建。
配置Kong的Route
這里的Route(路由)都必需從一個Service(服務)開始新建。所以,我們點擊剛剛新建好的服務名稱,點擊Routes
,進入Routes列表頁, 再點擊ADD ROUTE
,進入Route新建畫面。
在填寫 Hosts
,Paths
,Methods
這三個空行時,記得輸入一個信息后,要按一下回車,才算輸入成功(這里被小坑了一下)。完成后,點擊底部綠色按鈕,完成Route新建。
驗證配置結果
輸入 http://aaa.com/v1/user/get
應該能正常訪問:
輸入 http://bbb.com/v1/user/get
, 會發現訪問出錯。
因為我們在上面的route配置時,限定了訪問URL的域名過濾,也就是說 目前只支持包含 aaa.com
這個域名的接口訪問。
如果你的服務器只綁定了一個域名,看到這里,可以路過后面的部分 :)。
多域名配置
跟上面的步驟類似,我們為 bbb.com 這個域名 綁定 9001端口的服務。
此時訪問 http://bbb.com/v1/user/get
就可以拿到正常的返回值。
至此, 最基礎的Kong 配置已經完成、次回はUPSTREAM機能をやって見よう