大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
KONG网关工作流程简介
KONG网关工作流程图
KONG网关工作流程介绍
上面流程图仅仅是一个大致的示意图,不包含cosumer,plugin,先了解kong大致工作路程,再去深究。
一、流程
route路由器接收到请求后,根据路由规则,把请求转发到相应的service,service根据host、path、或者url属性,把请求直接转发到
target或者把请求转发到upstream (bb两句,这里其实upsteam对service来说是透明的,upstream在service看来就是一个target,加了upstream只是为了负载均衡,把请求分发到不同服务器的相同服务上)
二、具体组件介绍
-
route。路由器,根据路径转发请求到相应服务。
route有如下属性
1、name:路由器的名字。跟service绑定定时需要这个属性。
2、protocols:允许访问该路由的协议;http、https。默认两个都允许。
3、methods:匹配该路由的http方法,GET\POST
4、hosts: 这个作为域名匹配,请求头里的host与hosts配置的host进行匹配进行验证。
5、paths:匹配路由访问的路径。
6、 service.id:指向服务的id
创建route可以有两种方式。$ curl -i -X POST \ --url http://localhost:8001/services/service名称/routes \ --data 'paths[]=/route-path(路径)'
curl -i -X POST \ --url http://localhost:8001/routes \ --data 'service.id=service的id' \ --data 'paths[]=/route-path(路径)' <!--如果不知道id,可以使用以下请求获取service的id,这会返回所有service的信息--> curl -i -X GET --url http://localhost:8001/services/
-
service。服务。中间商,下接路由,上接真真的具体的服务。
service具有如下属性
1、name:可为空,创建后生成一个id。routes通过id绑定service
2、protocol:请求upstream的协议(http、https)。默认http
3、host:upstream name(一定要和upstream名称保持一致)
4、port:请求upstream的端口(虚拟端口,可自定义)。默认80
5、path:请求upstream的路径。与host、port、path共同组成url。可以直接使用url这个作为参数把host,port,path三个参数一并传递。这个url是指向target或者upsteam的路径
创建service有如下方式curl -i -X POST \ --url http://localhost:8001/services/ \ --data 'name=service-name' \ --data 'url=http://service.com/request'
curl -i -X POST \ --url http://localhost:8001/services/ \ --data 'name=skynet-service' \ --data 'host=10.133.235.129' \ --data 'port=8080' \ --data 'path=/skynet'
-
consumer。消费者,代表用户。可以利用consumer实现role这样的角色验证。有待学习。
-
plugin。插件。十分有用,可以对请求进行各种校验。plugin插件用lua脚本实现。自己编写的plugin脚本需要修改plugin的配置文件,才能使用。有待学习。
参考文章:https://www.cnblogs.com/jybky/p/11909880.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197743.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...