Kong网关1_service与route

0.背景

Linux下kong网关的手动安装

kong的端口简介以及如何远程连接kong的管理端口

1.基本概念

在接入kong网关后

  • 上游访问时,url中host:port/route,eg: localhost:8000/myPath
  • /myPath即为我们的route信息,这个route对应着一个service,根据映射信息,找到service.
  • service记录着真实的url,eg:www.baidu.com.

这样,上游请求/myPath时,通过kong,转发到了真实的url:www.baidu.com.

当然,这只是一个简单的应用.在上游/上游请求的中间,请求都交给kong这个网关后,将可以做很多事情.

图像

下方采用请求的方式进行操作,其他方式(后管界面/yml文件)请参考Expose your Services with Kong Gateway

1.1 service

service服务对象,包含着一个对应的api.

一个service可以对应多个route.

eg:service对应着www.baidu.com,将/a或者/b两个route都绑定至service后,通过/a或者/b都可以访问到www.baidu.com.

1.1.1 新增service
# POST
{{ip}}:8001/services

image-20210409164814565

1.1.2 查询service
# GET
{{ip}}:8001/services/{{serviceName}}

image-20210409164759847

1.1.3 查询所有service
# GET
{{ip}}:8001/services

image-20210409165122930

1.2 route

将route绑定至指定service后,便可以通过该route找到对应的service.

一个route只能对应一个service

1.2.1 新增route
# POST
{{ip}}:8001/services/{{serviceName}}/routes
# 请求中的{{serviceName}}标志着当前route绑定到哪个service

image-20210409165604024

1.2.2 查询route
# GET
{{ip}}:8001/routes/{{routeName}}

image-20210409165753787

1.2.3 查询所有route
# GET
{{ip}}:8001/routes

image-20210409165855382

1.2.4 验证route

访问/a,可以看到跳转至百度.

# GET 
{{ip}}:8000/{{pathOfRoute}}

image-20210409165944552

2.扩展

2.1 service与route的关系

  • 一个route只能对应一个service

  • 一个service可以对应多个route

在上游访问时,是通过route的path进行访问的,这个时候,如果route背后有多个service,就说不清这个route去哪里了.

但是/a或/b都绑定在一个service下,在进行/a或者/b访问时,我们都能找到其对应的serveice.

2.2 以对象的形式去看route

可以发现,route具有两个基本参数,name与path[].

其中path[]是个数组,即上面的/a或/b形式访问,可以通过一个route实现.

原文地址:https://www.cnblogs.com/yang37/p/14638008.html