KONG网关工作流程简介「建议收藏」

KONG网关工作流程简介「建议收藏」KONG网关工作流程简介KONG网关工作流程图KONG网关工作流程介绍KONG网关工作流程图KONG网关工作流程介绍上面流程图仅仅是一个大致的示意图,不包含cosumer,plugin,先了解kong大致工作路程,再去深究。一、流程route路由器接收到请求后,根据路由规则,把请求转发到相应的service,service根据host、path、或者url属性,把请求直接转发到target或者把请求转发到upstream(bb两句,这里其实upsteam对service来说是透明的,ups


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只是为了负载均衡,把请求分发到不同服务器的相同服务上)
二、具体组件介绍

  1. 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/ 
    
  2. 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'
    
  3. consumer。消费者,代表用户。可以利用consumer实现role这样的角色验证。有待学习。

  4. plugin。插件。十分有用,可以对请求进行各种校验。plugin插件用lua脚本实现。自己编写的plugin脚本需要修改plugin的配置文件,才能使用。有待学习。

参考文章:https://www.cnblogs.com/jybky/p/11909880.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197743.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 学生注册idea_学生证怎么绑定身份证

    学生注册idea_学生证怎么绑定身份证一、安装进入官网下载适合自己系统的版本,下载地址:https://www.jetbrains.com/idea/download/#section=windows安装中选择适合本机的64位(32位)版本,其他一直next即可二、激活成功教程先下载jar包JetbrainsCrack.jar,把它放到你认为合适的文件夹内,我直接放在了安装目录C:\ProgramFiles\JetBrai…

    2022年9月23日
  • 快速排序中的分割算法的解析与应用

    快速排序中的分割算法的解析与应用

    2021年9月15日
  • datagrid 2021.1激活码破解方法

    datagrid 2021.1激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
  • 关于属性描述符PropertyDescriptor[通俗易懂]

    关于属性描述符PropertyDescriptor[通俗易懂]本文首发于本博客猫叔的博客,转载请申明出处前言感谢GY丶L粉丝的提问:属性描述器PropertyDescriptor是干嘛用的?本来我也没有仔细了解过描述符这一块的知识,不过粉丝问了,我就抽周末的时间看看,顺便学习一下,粉丝问的刚好是PropertyDescriptor这个属性描述符,我看了下源码。/***AProper…

    2022年10月1日
  • Double转BigDecimal的坑

    Double转BigDecimal的坑publicstaticvoidmain(String[]args){floata=57.3f;BigDecimaldecimalA=newBigDecimal(a);System.out.println(decimalA)…

    2022年6月4日
  • 无人驾驶汽车系统入门(一)——卡尔曼滤波与目标追踪

    无人驾驶汽车系统入门(一)——卡尔曼滤波与目标追踪前言:随着深度学习近几年来的突破性进展,无人驾驶汽车也在这些年开始不断向商用化推进。很显然,无人驾驶汽车已经不是遥不可及的“未来技术”了,未来10年必将成为一个巨大的市场。本系列博客将围绕当前使用的最先进的无人驾驶汽车相关技术,一步一步地带领大家学习并且掌握无人驾驶系统的每一个模块的理论基础和实现细节。由于无人驾驶汽车系统构成及其复杂,本系列博客仅讨论软件部分的内容,关于汽车,传感器和底层的硬件,不

    2022年6月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号