Kong04- Kong 四大参考说明
Kong 四大参考说明
Kong 的官方有很多详细的参考说明,比如配置文件、命令行、Admin API、代理、负载均衡,接下来我们简单看一下,都提供什么内容。
本文主要基于 Kong 1.3 版本进行描述,如有更新,请查看最新文档。
配置文件
通过对配置文件的 深入理解,可以优化 Kong 集群、使用的数据库、配置 Nginx ,
官方的参考资料是 Configuration Reference
Kong 在启动时,可以通过 -c
或者 --conf
参数来指定配置文件,比如:
kong start -c /path/to/kong.conf
可以使用 check 命令来校验配置文件的语法正确性,
$ kong check <path/to/kong.conf>
configuration at <path/to/kong.conf>
is valid
Kong 的配置在加载的时候也会去找同名的环境变量,所有也可以通过环境变量来配置 Kong,而且环境变量的优先级高于配置文件。可以通过环境变量来配置 Kong 这样方便了基于容器的部署和运行。如果要使用环境变量,需要以 KONG_
字段开头。
命令行参考
所提供的CLI(命令行接口)允许您启动、停止和管理 Kong 实例。CLI 可以管理本地节点(如在当前机器上)。可以参考官网文档
CLI Reference
主要由如下命令
全局标记
所有的命令都可以使用如下参数
- --help : 打印命令的帮助信息
- --v : 打开详情模式
- --vv : 打开 debug 模式
可用的命令
- kong check 检查配置文件语法等等
- kong config 使用申明式配置文件。
- kong health 检查该节点上的 kong 是否在运行
- kong migration 管理 Kong 的数据库
- kong prepare 此命令准备Kong前缀文件夹及其子文件夹和文件。
- kong quit 优雅的退出 Kong 实例
- kong reload 重载 kong 实例配置
- kong restart 重启 kong 实例
- kong start 启动 kong 实例
- kong stop 停止 kong 实例
- kong version 打印版本信息
Admin API 参考
Admin API 的说明可以参考官网文档:
Admin API Reference
Admin API 接受 2 两种连接类型在每个终端。
分别是
- application/x-www-from-urlencoded
- application/json
共有 9 个对象,分别是:
- Service Object
- Route Object
- Consumer Object
- Plugin Object-Precedence
- Certificate Object
- CA Certificate Object
- SNI Object
- Upstream Object
- Target Object
Proxy 参考
在本文档中,我们将通过详细解释Kong的路由功能和内部工作原理来介绍它的代理功能。
Kong 公开了几个接口,可以通过两个配置属性进行调整:
- proxy_listen,它定义了一个地址/端口列表,Kong将在这些地址/端口上接受来自客户机的公共通信,并将其代理到您的上游服务(默认为8000)。
- admin_listen,它还定义了一个地址和端口列表,但是这些应该被限制为只能由管理员访问,因为它们公开了Kong的配置功能:Admin API(默认情况下为8001)。
Proxy Reference
Kong 经常用到的术语有:
- client : 指下游客户向香港代理端口发出请求。
- upstream service :指自己位于 Kong 后面的 API/Service,客户端请求被转发到这些API/Service。
- Service : 顾名思义,服务实体是上游服务的抽象。服务的示例包括数据转换微服务、计费API等。
- Route : 这是指 Kong 路由实体。Route 是进入 Kong 的入口点,并为要匹配的请求定义规则,然后路由到给定的服务。
- Plugin : 指 Kong 的 “plugins”,它是在代理生命周期中运行的业务逻辑片段。插件可以通过管理 API 进行配置——可以是全局的(所有传入的流量),也可以是在特定的路由和服务上配置。
负载均衡参考
Kong 为多个后端服务提供了多种负载平衡请求的方法: 一种简单的基于 DNS 的方法,另一种是更动态的环形平衡器,该平衡器还允许在不需要DNS服务器的情况下进行服务注册。
负载均衡可以参考官网文档
Load Balancing Reference 来了解。
基于 DNS 的负载均衡
当使用基于 DNS 的负载平衡时,后端服务的注册是在 Kong 之外完成的,而 Kong 只接收来自 DNS 服务器的更新。
如果主机名没有解析为上游名称或 DNS 主机文件中的名称,则使用包含主机名(而不是IP地址)的主机定义的每个服务都将自动使用基于 DNS 的负载平衡。
DNS 记录 ttl 设置(生存时间)决定信息刷新的频率。当使用 ttl 为 0 时,每个请求都将使用自己的 DNS 查询进行解析。这将带来性能损失,但是更新/更改的延迟将非常低。
A 记录
一个 A 记录对应一个或者多个 IP 地址,因此,当主机名解析为 A 记录时,每个后端服务必须有自己的IP地址。
因为没有权重信息,所以所有条目在负载平衡器中都将被视为同等权重,并且平衡器将进行直接的循环。
SRV 记录
SRV记录包含所有IP地址的权重和端口信息。后端服务可以通过IP地址和端口号的唯一组合来标识。因此,一个IP地址可以在不同的端口上承载相同服务的多个实例。
因为权重信息是可用的,所以每个条目将在负载平衡器中获得自己的权重,并执行加权循环。
DNS 的优先级
1、前面解析的最后一个成功类型
2、SRV 记录
3、A记录
4、CNAME 记录
这些可以在配置文件的 dns_order
进行配置。
基于 Ring-balancer 的负载均衡
使用 Ring-balancer 时,后端服务的添加和删除将由 Kong 处理,不需要 DNS 更新。Kong 将作为服务注册处。节点可以通过一个HTTP请求添加/删除,并将立即启动/停止接收流量。
配置 Ring-balancer 工作需要有 Upstream 和 target 两个实体。
- target : 带有后端服务所在端口号的IP地址或主机名,例如。“192.168.100.12:80”。每个目标都获得一个额外的权重,以指示它获得的相对负载。IP地址可以是IPv4和IPv6格式。
- upstream : 一个
virtual hostname
,可用于路由的host
字段,例如一个 upstream 是 weather.v2 会收到服务 host=weather.v2.service 的所有请求。
小结
本来大致讲述了 Kong 的配置文件、命令行、代理、负载均衡等内容。
Kong04- Kong 四大参考说明的更多相关文章
- Kong配置参考
kong配置的官网说明:https://docs.konghq.com/1.0.x/configuration/ 1. 配置加载 如果您通过其中一个官方软件包安装了Kong,Kong会附带默认配置文件 ...
- 在docker中运行kong和kong dashboard
一.制作alpine版的kong镜像 https://github.com/Kong/docker-kong/tree/d4cec3dc46c780a916a40963309554ca81da2b46 ...
- apigateway-kong(五)集群搭建部署
kong 集群将使得系统通过增加更多机器,从而实现水平扩展,承接更多的请求流量.它们将共享同样的配置且使用同一个数据库.kong 集群中的的所有节点都连接同一个数据库. 你需要在 kong 集群的上一 ...
- K8S ingress控制器
文章转载自: K8S ingress控制器 (一)https://blog.51cto.com/u_13760351/2728917 K8S ingress控制器 (二)https://blog.51 ...
- 微服务Kong(九)——认证参考
客户端访问上游API服务,通常由Kong的认证插件及其配置参数来控制. 通用认证 一般情况下,上游API服务都需要客户端有身份认证,且不允许错误的认证或无认证的请求通过.认证插件可以实现这一需求.这些 ...
- 微服务Kong(八)——代理参考
Kong侦听四个端口的请求,默认情况是: 8000:此端口是Kong用来监听来自客户端的HTTP请求的,并将此请求转发到您的上游服务.这也是本教程中最主要用到的端口. 8443:此端口是Kong监听H ...
- 微服务Kong(六)——配置参考
1. 配置加载 如果您通过其中一个官方软件包安装了Kong,Kong会附带默认配置文件,该文件可以在/etc/kong/kong.conf.default中找到.要开始配置Kong,您可以复制此文件: ...
- Kong(v1.0.2)代理参考
介绍 在本文中,我们将通过详细解释Kong的路由功能和内部工作原理来介绍它的代理功能. Kong公开了几个接口,可以通过两个配置属性进行调整: proxy_listen,它定义了一个地址/端口列表,K ...
- 微服务Kong(十)——负载均衡参考
KONG为请求多个后端服务提供了多种负载均衡方案:一种是简单的基于DNS,另一种是更加动态的环形均衡器,他在不需要DNS服务器的情况下也允许服务注册. 一.基于DNS的负载均衡 当使用基于DNS的负载 ...
随机推荐
- Python——Pandas速查手册中文版
转自——http://blog.csdn.net/qq_33399185/article/details/60872853,非常感谢大神的整理! 还有图片版,转自——https://zhuanlan. ...
- spring5 源码深度解析----- AOP目标方法和增强方法的执行(100%理解AOP)
上一篇博文中我们讲了代理类的生成,这一篇主要讲解剩下的部分,当代理类调用时,目标方法和代理方法是如何执行的,我们还是接着上篇的ReflectiveMethodInvocation类Proceed方法来 ...
- Spring MVC拦截器学习
1 介绍 Spring Web MVC是基于Servlet API构建的原始Web框架. 2 拦截器 2.1 定义 springmvc框架的一种拦截机制 2.2 使用 2.2.1 两步走 实现Hand ...
- ef core实现软删除
很多web程序一般的偶不会设计真的物理删除了. 基本上都是在在数据库加一个标记,就得当作已经删除了.同时在查询的时候,过滤已经标记删除的数据 ef core实现软删除是非常简单的,直接在OnModel ...
- 02-25 scikit-learn库之决策树
目录 scikit-learn库之决策树 一.DecisionTreeClassifier 1.1 使用场景 1.2 代码 1.3 参数详解 1.4 属性 1.5 方法 二.DecisionTreeR ...
- SQL Server换版本卸载问题
好久没更博客了,今天随性的更一篇.. 你是否也在问这个问题. 给你答案: 1.运行:输入regedit 进入注册表编辑器,进入之后执行下列操作: 2.在注册表,删除如下项:HKEY_CURRENT_U ...
- 单元测试实践(SpringCloud+Junit5+Mockito+DataMocker)
网上看过一句话,单元测试就像早睡早起,每个人都说好,但是很少有人做到.从这么多年的项目经历亲身证明,是真的. 这次借着项目内实施单元测试的机会,记录实施的过程和一些总结经验. 项目情况 首先是背景,项 ...
- 阿里云学生服务器+WordPress搭建个人博客
搭建过程: 第一步:首先你需要一台阿里云服务器ECS,如果你是学生,可以享受学生价9.5元/月 (阿里云翼计划:https://promotion.aliyun.com/ntms/act/campus ...
- docker的使用 一容器命令
Docker容器命令 前提 执行容器的前提是有镜像 . #创建并启动容器 docker run [options] images [command][args] // option 的说明 --nam ...
- 像艺术家一样思考 Think Like an Artist
艺术家是如何获得灵感,如何找到自己的独特风格和主题的? 艺术家在绘画.写作.表演或歌唱前不会去征求谁的允许,而是随心而行 要想在数字时代获得满足感,我们需要变得有创造性 1.艺术家富有事业心 艺术家是 ...