Kong工作原理 - 负载均衡 - 基于DNS的负载均衡

Kong提供多种请求负载均衡到多个后端服务的方式:默认的基于DNS的方法,以及使用Upstream实体的一组高级负载均衡算法。

默认情况下启用DNS负载均衡器,仅限于循环调度负载均衡。Upstream实体还具有健康检查和断路器功能,除了更高级的算法,如最小连接数、一致性哈希和最低延迟。

根据您的基础设施,请参考相应的DNS注意事项。

每个使用主机名(而不是IP地址)定义的服务,如果该名称解析为多个IP地址,将自动使用基于DNS的负载均衡。

DNS记录的ttl设置(存活时间)决定了信息刷新的频率。当使用ttl为0时,每个请求将使用自己的DNS查询进行解析。显然,这会带来一定的性能损耗,但更新/更改的延迟将非常低。

所使用的循环调度算法(是否加权)取决于主机名的DNS记录类型。

A记录

A记录包含一个或多个IP地址。因此,当主机名解析为A记录时,每个后端服务必须有自己的IP地址。

由于没有权重信息,负载均衡器将平等对待所有条目,并进行简单的循环调度。

SRV记录

SRV记录包含所有IP地址的权重和端口信息。后端服务可以通过IP地址和端口号的唯一组合进行标识。因此,单个IP地址可以在不同的端口上承载多个相同服务的实例。

SRV记录还具有优先级属性。Kong只会使用具有最高优先级的条目,并忽略其他所有条目(请注意,SRV记录中的“最高优先级”实际上是具有最低优先级值的记录)。

因为可用权重信息,每个条目在负载均衡器中都会有自己的权重,并进行加权循环调度。

类似地,任何给定的端口信息都将被DNS服务器的端口信息覆盖。如果一个服务具有主机属性为myhost.com和端口属性为123,并且myhost.com解析为一个带有127.0.0.1:456的SRV记录,那么请求将被代理到http://127.0.0.1:456/somepath,因为端口123将被456覆盖。

DNS注意事项
  • Kong将信任域名服务器。这意味着通过DNS查询检索到的信息将比配置的值具有更高的优先级。这主要涉及到携带端口和权重信息的SRV记录。
  • 每当DNS记录刷新时,会生成一个列表来正确处理权重。为了保持算法的性能,尽量将权重保持为它们的倍数,例如,17和31的2个权重将导致结构中有527个条目,而16和32的权重(或者它们最小的相对项1和2)将导致结构中仅有3个条目。这在非常小(甚至为0)的ttl值下尤其重要。
  • DNS使用默认限制为512字节的UDP进行传输。如果要返回的条目很多,DNS服务器将以部分数据进行响应,并设置截断标志,表示有更多未发送的条目。DNS客户端,包括Kong,将通过TCP发起第二个请求来检索完整的条目列表。
  • 一些域名服务器默认情况下不会响应截断标志,而是将响应修剪为在512字节UDP大小以下。
    • Consul是一个示例。在其默认配置中,Consul仅返回前三个条目,并且不设置截断标志来指示还有剩余的未发送条目。Consul提供了一个选项来启用截断标志。
  • 如果部署的域名服务器没有提供截断标志,那么上游实例的负载可能会不一致。由于域名服务器提供的信息有限,Kong节点实际上对某些实例不知情。为了缓解这个问题,可以使用一个不同的域名服务器,使用IP地址而不是名称,或者确保使用足够多的Kong节点以保持所有上游服务的使用状态。
  • 当域名服务器返回一个“3 Name Error”的错误时,这对于Kong来说是一个有效的响应。如果这是意外的情况,首先验证查询的名称是否正确,其次检查域名服务器的配置。
  • 在DNS记录(A或SRV)中,初始选择的IP地址不是随机的。因此,在使用TTL为0的记录时,预期域名服务器会对记录条目进行随机排序。 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/647250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV功能特性和依赖关系

有许多可选的依赖项和功能可以打开或关闭。 CMake 具有特殊选项,允许打印所有可用的配置参数: cmake -LH ../opencv 选项命名约定 有三种选项用于控制库的依赖项,它们具有不同的前缀: 以启用或禁用依赖项开头的选项WITH_ 从启…

输入框限制输入两位小数 输入金额限制 双向绑定输入框能继续输入但是变量的数据不变解决方案 input 保留两位小数

移动端项目 需求是 输入框只能输入1000以内的数字保留两位小数 开发中发现 用vue开发双向绑定 不管是用value还是v-model 在输入时用input监听输入框变化 校验是否匹配 当不匹配是修改绑定的变量 inputValue时 打印inputValue符合预期 但是input输入框中还是原来输入的值 没有…

RocketMQ源码阅读-八-定时消息和消息重试

RocketMQ源码阅读-八-定时消息和消息重试 定时消息概念逻辑流程图延迟级别Producer发送定时消息Broker存储定时消息Broker发送定时消息Broker 持久化定时发送进度 消息重试总结 定时消息 概念 官网给出的概念:https://rocketmq.apache.org/zh/docs/featureBehavior…

Vue中使px自动转rem配置 (h5适配问题)

以下方法为px自动转换rem,顾名思义,配置完成后,不用再关心rem换算等等,只需按照设计稿的px值写入即可,当你保存后PostCSS插件会自动将px转换成所配置的rem值,并且你在浏览控制台观测界面时你会发现你在代码…

树莓派无显示屏连接

终端命令控制树莓派关机 1:用网线连接树莓派 按照正常的步骤 ,搜索控制面板,网络和internet,网络和共享中心,更改适配器设置,右键WIFI,点击属性,点击共享,打勾允许即可&…

redis排序

文章目录 简介SORT命令的实现ALPHA选项的实现ASC和DESCBYLIMITGET命令 类似映射STORE选项的实现多个命令的执行顺序 简介 Redis的SORT命令可以对列表键、集合键或者有序集合键的值进行排序。 SORT命令的实现 服务器执行SORT numbers 命令的详细步骤如下: 1&#…

超分之ESRGAN

Esrgan:增强型超分辨率生成对抗网络。Esrgan: Enhanced super-resolution generative adversarial networks.In: ECCVW. (2018)Xintao Wang, Ke Yu, Shixiang Wu, Jinjin Gu, Yihao Liu,Chao Dong, Yu Qiao, and Chen Change Loy. 文章目录 摘要一、引言二、相关工作…

科大讯飞 再次引爆Ai

去年「科大讯飞版ChatGPT」星火大模型刚上线的时候,小编给大家推荐过一波,演示了其强大的功能,不少小伙伴都立马申请体验了一把,有小伙伴还私信我说功能非常强大,工作效率提高不少,支持国产大模型之类赞扬。…

西安石油大学C++上机实验汇总

考试题难度就像第三章第五章课后题的难度 基础知识一定要掌握!!! 上机一:类与对象程序设计(2 学时) 上机目的 掌握声明类的方法。掌握类和类的成员的概念以及定义对象的方法。掌握构造函数和析构函数的…

elementplus 中 DatePicker 日期选择器样式修改无效

问题 遇到一个需求需要修改 DatePicker 日期选择器的样式,在添加了 scoped 属性的 style 标签,并且使用了 deep 样式穿透的情况下并不能修改其样式。 原因 DatePicker 日期选择器弹出面板默认挂载在 body 上,所以在组件中添加了 scoped 属…

Java日期和时间学习记录2

1、Java的LocalDate类当前时间往未来几天和过去时间几天 import java.time.LocalDate;public class Main {public static void main(String[] args) {// 获取当前日期LocalDate currentDate LocalDate.now();System.out.println("当前日期:" currentDa…

【Fooocus 深度学习】SDXL,AIGC生图,源码解读

文章目录 使用通配符增加prompt多样性Fooocus的风格实现 使用通配符增加prompt多样性 prompt和negative_prompt都可以通过apply_wildcards函数来实现通配符替换,apply_wildcards会从txt中随机找一个出来。 promptsunshine, river, trees, __artist__ task_prompt …

vue2、vue3,生命周期详解

一、Vue2.x Vue2的生命周期 是指Vue实例从创建到销毁的整个过程中,会经历一系列的阶段和回调函数。它分为8个阶段,包括了组件的创建、挂载、更新和销毁等过程。 1、beforeCreate: 在实例初始化之后,但在数据观测和事件配置之前被调用。此…

使用ffmpeg转换索尼老DV拍摄的VOB文件为mp4

一些背景故事 最近对象想用 CCD 拍照录像,家里刚好有一台快 20 年前的索尼 DV DCR-DVD653E,就是电池老化充不进去电了。 翻出来之后还感慨了一下:当年没有网购,价格不透明;有些地方也没有官方店,只有一两家…

Linux笔记之bash脚本中的-e、和

Linux笔记之bash脚本中的-e、&和&& code review! 文章目录 Linux笔记之bash脚本中的-e、&和&&1.&和&&2.-e 1.&和&& 在Linux bash脚本中,&符号有几个不同的用途,这里列举了一些常见的情况&#xf…

js中的内置对象、数学对象、日期对象、数组对象、字符串对象

js中的对象(三种): 自定义对象 car、computer DOM对象 div、p BOM对象 window、console 内置对象 数学对象 Math (object类型) 1、圆周率 Math.PI 2、向下取整(返回值) Math.floor() 3、向上取整(返回值) M…

年少不知 Base 好,错把总包当成宝。。

今天聊一个很现实的话题:选 offer 对比薪资时,我强烈建议以 Base 为主,而不是总包。 为什么?且听鱼皮娓娓道来。 注意,以下为个人观点,仅供参考! 首先明确 Base 和总包的概念: Base&…

某马头条——day11+day12

实时计算和定时计算 流式计算 kafkaStream 入门案例 导入依赖 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusions><exclusion><artifactId>connect-json</artifactId&…

美,英,法,德、意大利和西班牙的geojson,以及区域json

美&#xff0c;英&#xff0c;法&#xff0c;德、意大利和西班牙的geojson文件 json地址 https://pan.baidu.com/s/1nio1bV_j-jAEVqgEHXWsNw?pwdqwer#list/path/GEOJSON 感谢大佬提供的 大佬连接 大佬的知乎原地址 国内geojson获取工具地址 http://da![在这里插入图片描述](h…

367.有效的完全平方数(力扣LeetCode)

367.有效的完全平方数 题目描述 给你一个正整数 num 。如果 num 是一个完全平方数&#xff0c;则返回 true &#xff0c;否则返回 false 。 完全平方数 是一个可以写成某个整数的平方的整数。换句话说&#xff0c;它可以写成某个整数和自身的乘积。 不能使用任何内置的库函…