kong网关基础
转载:https://www.cnblogs.com/jybky/p/11909880.html
客户端就是调用方,
routes路由匹配客户端的请求规则。匹配成功后分配到service层。一个路由指向一个service,一个service可以被多个不通规则的路由routes指向。
访问地址是kong网关地址+代理端口(默认http:8000,https:8443)
service服务是一个抽象服务层,可以用于指向具体物理服务(target),也可以指向upstream用于实现物理服务的负载效果。一个service对于upstream、target都是一对一的关系。
upstream主要用于实现kong的负载功能,一个service匹配到一个upstream后,upstream可以指向多个target服务以此来实现负载的效果。
target服务端指的就是最后的物理服务,当然也可以是其他的虚拟服务。
接下来开始搭建,因为上面的每一层都需要依赖下一层进行配置,所以我们可以从低层开始配置(也开始先创建高层,随后再行修改配置)
注意:以下新增命令都是post请求,如果使用get请求会返回已创建的信息;kongIp指的是kong网关的地址。http请求使用8001端口,https请求使用8444端口。
一、upstream
命令:http://kongIp:8001/upstreams/
主要参数:name(不能为空,service指向时使用),
algorithm(负载规则):默认round-robin。目前支持三种:round-robin, consistent-hashing
, or least-connections
healthchecks.active.type:检查目标服务器target的健康方式。一共三类tcp、http、https
healthchecks.active.http_path:使用http协议检查target服务是否健康时绑定的路径。该路径可以指向target服务的一个请求地址,用于检测
target:指向具体得服务地址或者其他中间件服务。可匹配多个target。在新增target时需设定weight(权重),用于负载。
每个新建的target会有一个health指标,用于标记target是否联通健康。就是通过 healthchecks.active.type、healthchecks.active.http_path以及其他参数监测。
二、services
命令:http://kongIp:8001/services
主要参数:name:可为空,创建后生成一个id。routes通过id绑定service
protocol:请求upstream的协议(http、https)。默认http
host:upstream name(一定要和upstream名称保持一致)
port:请求upstream的端口(虚拟端口,可自定义)。默认80
path:请求upstream的路径。
三、routes
命令:http://kongIp:8001/routes
主要参数:name:route Name
protocols:允许访问该路由的协议;http\https。默认两个都允许
methods:匹配该路由的http方法,GET\POST
hosts: 匹配该路由的host地址,可以是ip也可以是域名。可以配置多个。如果是域名的话注意需要有域名解析
paths:匹配路由访问的路径
service.id:指向服务的id
以上就是这三部分构造的主要参数值。还有未列出的参数值大多有默认值。需要的话可自行添加修改
route和service之间通过service_id建立关联关系
service和upstream之间通过host(service)和name(upstream)建立关联关系
upstream和target通过upstream_id建立关联关系
upstream中的target就是实际的服务地址
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南