微服务系列(二)之网关konga配置操作

1.konga核心对象

Kong 的四大核心对象:upstream,target,service,route。下面分别说:

(1)upstream,字面意思上游,实际项目理解是对某一个服务的一个或者多个请求地址的抽象入口,新建upstream可配置基本信息,被动/主动健康检查。

(2)trarget,目标,实际就是上游upstream的一个多个实际的某服务的请求地址(ip:port或者域名),在upstream详情里新增配置target。

(3)service,服务,对实际服务(比如用户服务)的抽象概念,通过host绑定upstream,添加服务可配置的字段如下

Service 对象配置字段:

  1. name(必填):服务名称.
  2. tags(可选):可选地向服务添加标记
  3. url(可选):将协议、主机、端口和路径立即设置成简短的属性。这个属性是只写的(管理API从来不"返回"url)
  4. protocol(必填):该协议用于与upstream通信。它可以是http(默认)或https。
  5. host(必填):upstream服务器的主机。
  6. port(必填):upstream服务器端口。默认为80
  7. path(可选):在向upstream服务器请求中使用的路径。默认为空。
  8. retries(可选):在代理失败的情况下执行的重试次数。默认值是5。
  9. connect_timeout(可选):建立到upstream服务器的连接的超时时间。默认为60000。
  10. write_timeout(可选):将请求发送到upstream服务器的两个连续写操作之间的超时时间。默认为60000。
  11. read_timeout(可选):将请求发送到upstream服务器的两个连续读取操作之间的超时时间。默认为60000。

(4)route,路由,通过配置一定的匹配规则,来将客户端的请求,匹配到对应的service上,可配置如下规则:

  1. name(可选) :定义名称
  2. tags(可选) :向路由添加标记
  3. protocols(可选) : 这条路线应该允许的协议列表。
  4. methods(半可选) :与此路由相匹配的HTTP方法列表。例如: ["GET", "POST"].至少有一个主机、路径或方法必须被设置。用表单编码参数是methods[]=GET&methods[]=OPTIONS。使用JSON,使用数组。
  5. hosts(半可选):与此路径匹配的域名列表。例如:example.com. 至少有一个主机、路径或方法必须被设置。用表单编码参数是 hosts[]=foo.com&hosts[]=bar.com。使用JSON,使用数组。
  6. paths(半可选):与此路径相匹配的路径列表。例如: /my-path.至少有一个主机、路径或方法必须被设置。用表单编码参数是 paths[]=/foo&paths[]=/bar. 使用JSON,使用数组。
  7. Regex priority(可选) : 当多个路由同时使用正则表达式匹配某个给定请求时,用来选择哪个路由解析该请求的数字。当两个路由匹配路径并且具有相同的regex_优先级时,将使用较旧的路由(最低创建位置)。注意,非regex路由的优先级不同(较长的非regex路由在较短的路由之前匹配)。默认为0。
  8. strip_path(可选) :当通过其中一条路径匹配路由时,从上游upstream请求URL中去掉匹配前缀。默认值为true。
  9. preserve_host(可选) :当通过一个主机域名匹配一条路由时,在upstream请求头中使用请求主机头。默认设置为false,upstream主机头将是服务主机的主机头。

上述是konga的4个核心对象,当客户端的真实请求来临时流程是这样的,请求首先来到route如匹配上service,就转发到对应的service,service通过host找到所绑定的upstream,upstream拿到其下的所有target,如果是多个目标,就进行负载均衡分发。

2.konga配置

部署一个.net core api服务,并用docker启动,(docker部署.net core方法传送门:www.cnblogs.com/saltlight-w...

upsteam上游配置

基本功能,给起个名字,下面给这个上游,增加target

下面新建个service,

最后点击新建好的服务详情进去,给这个服务建立路由匹配规则

由此,kong网关的一个测试服务已经配置完毕,kong的监听客户端的端口是8000,注意不是8001。下面用postman通关网关来请求测试服务接口

相关推荐
balmtv18 小时前
GPT-5.4统一路由机制深度拆解:动态计算调度与大模型“微服务”架构
gpt·微服务·架构
麦聪聊数据19 小时前
SQL2API 网关的透明缓存与请求合并机制
数据库·sql·低代码·微服务
天涯明月19931 天前
服务网格完全指南:从基础概念到生产实践
java·服务器·数据库·分布式·微服务
陈皮糖..1 天前
docker-compose实验案例之基于docker容器化部署下 Flask+Redis 访问计数功能的实现与调优
linux·运维·redis·docker·微服务·flask·云计算
大傻^2 天前
钱的教育架构师思维:从现金流到资产负债表的系统工程
微服务·架构设计·系统思维·财务自由·技术债管理
05大叔2 天前
微服务,拆分原则,远程调用,服务治理,OpenFeign
微服务·云原生·架构
彭于晏Yan2 天前
Springboot实现微服务监控
spring boot·后端·微服务
喵叔哟2 天前
8. 【Blazor全栈开发实战指南】--路由与导航
数据库·微服务·.net
Predestination王瀞潞2 天前
MVC 架构→分层架构→微服务架构 架构演进
微服务·架构·mvc
indexsunny2 天前
互联网大厂Java面试实战:微服务与Spring Boot在电商场景下的应用解析
java·spring boot·redis·docker·微服务·kubernetes·oauth2