微服务系列(二)之网关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通关网关来请求测试服务接口

相关推荐
蝎子莱莱爱打怪1 天前
XZLL-IM干货系列 04|Netty 长连接实战:Pipeline 怎么排、心跳怎么跳、连接怎么管
后端·微服务·面试
SamDeepThinking2 天前
Java微服务练习方式
java·后端·微服务
米丘5 天前
微前端之 Web Components 完全指南
微服务·html
霸道流氓气质8 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
霸道流氓气质8 天前
Spring Boot 微服务性能优化完全指南
spring boot·微服务·性能优化
地瓜伯伯8 天前
从MESI缓存一致性协议讲透synchronized的底层
java·spring boot·spring·spring cloud·微服务·springcloud
Devin~Y8 天前
大厂 Java 面试实录:从音视频内容社区到 AI RAG 的全链路技术设计
java·spring boot·redis·spring cloud·微服务·kafka·音视频
递归尽头是星辰8 天前
AI 访问数据仓库:从直连到微服务化
数据仓库·人工智能·微服务·dataagent·ai数据治理
就改了9 天前
Windows 环境 SkyWalking 完整实操教程
windows·微服务·skywalking
至乐活着9 天前
Docker Compose多服务编排实战:从零搭建Node.js+MySQL+Redis全栈应用
docker·微服务·devops·容器编排·compose