跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > 如何配置 DNS 轮询负载均衡以实现高可用性

如何配置 DNS 轮询负载均衡以实现高可用性

时间:2024-04-21 09:10:35 来源:网络cs 作者:言安琪 栏目:卖家故事 阅读:

标签: 实现  均衡  负载  配置 
阅读本书更多章节>>>>

简介


尽管这是一种更具争议性的技术,但利用和管理 DNS 响应(即返回的 IP 地址列表)来地理分布您的应用程序,以利用您的提供商的全球存在是一个很好的方法。除非您愿意在硬件和基础设施成本上花费一小笔财富,否则使用 DNS 来实现高可用性可能是一个很好的选择。

在本文中,我们将看到如何利用 DigitalOcean 的全球云服务器/数据中心基础设施所提供的一些真正出色和独特的可能性,通过管理 DNS 响应来实现地理分布、高可用的应用程序设置,以实现最小的停机时间(因此最小的数据丢失)。

术语表


1. 传统应用部署结构


2. 高可用性


高可用性应用部署结构如何利用 DNS 实现高可用性总结

3. 如何部署高可用性应用


设置负载均衡器/反向代理设置 DNS 记录设置应用服务器设置数据库

传统应用部署结构


传统和最常见的应用部署依赖于所有相关组件位于同一位置的设置,原因有很多,比如:

提供商缺乏手段;高成本,和/或;复杂的工程工作。

即使应用程序是由多台位于负载均衡器(或反向代理)后面的机器提供服务,即使数据库也设置了可靠性以防止数据丢失,这种安排也容易出现不同级别的错误,有时会导致停机时间。

为了防止这种情况,必须依赖并使用更可靠的系统架构。其中数据和服务器在不同地区(例如旧金山和纽约)全球分布。

高可用性


如果您的应用程序就是您的业务,您需要保持其在可能的情况下全天候可访问,几乎没有任何中断。不幸的是,在一个地点横向扩展到许多服务器并不总是解决方案,因为会出现意外的数据中心问题。

然而,在不同地理中心全球分布您的虚拟服务器可以为您提供所需的稳定性,从而使应用程序的正常运行时间尽可能高。

在 IT 系统设计方面,这种结构被称为高可用性

由于 DigitalOcean 在两个大洲的五个不同位置都有存在,您也可以全球分布您的应用程序堆栈。

高可用性应用部署结构


简而言之,高可用性应用部署结构取决于从不同数据中心向客户端交付和响应。

尽管有许多可能的方法可以获得这种结构,但可能最简单和最经济的方法是利用 DNS 的工作原理。

一个基本的示例设置可以考虑如下:

如何使用 DNS 实现高可用性


当用户输入网站的域名时,通过一组定义好的规则(即协议),Web 浏览器会拨号到域名服务器,并询问托管该网站的机器的地址。一旦收到 IP 地址,它就会将请求发送到该计算机,同时附带一些额外的数据,并呈现响应。

由于 DNS 允许保留多个记录(甚至是相同类型的记录),因此可以将多个主机列为服务器。

因此,如上图所示,如果您在 DNS 服务器中列出了 2 个位于不同位置的负载均衡器/反向代理的 IP 地址,每个负载均衡器都设置为在至少两个不同的数据中心之间平衡负载,如果其中一个数据中心不可访问,客户端的 Web 浏览器将尝试 DNS 服务器返回的下一个 IP 地址记录,并重复获取网站的过程。

这种负载均衡称为轮询 DNS 负载均衡。

总结


乍一看,事情可能看起来有点复杂。让我们使用逐步说明来总结它们:

DNS 可以为相同的域名保存多个记录。

DNS 可以返回相同域名的 IP 地址列表。

当 Web 浏览器请求网站时,它将依次尝试这些 IP 地址,直到获得响应。

这些 IP 地址应该指向负载均衡器/反向代理而不是应用服务器。

这些反向代理需要在多个位置平衡多个服务器的负载。

如果一个数据中心宕机,Web 浏览器无法从 IP 地址(即负载均衡器)获取响应,它将尝试访问另一个地址。

由于两个数据中心同时不可访问的可能性非常小,第二个负载均衡器将返回响应。

Web 应用服务器应该是无状态的,以便使负载均衡器的工作更加容易。

数据库服务器应该以复制的方式设置。

如何部署高可用性应用


注意: 本教程与编程语言或 Web 服务器类型无关。遵循这些说明,无论您选择的框架、Web 或 HTTP 服务器如何,都可以实现高可用性。

设置负载均衡器/反向代理


实现高可用性的第一步是设置两个或更多个负载均衡反向代理,它们将在应用服务器之间进行通信。

在两个位置实例化两个云服务器:

创建两个 DigitalOcean droplets。

例如:文章:如何创建 DO 云服务器

在每个 droplet 上设置负载均衡器/反向代理:

安装和配置 Nginx、Apache 或 HAProxy。

例如:文章:Nginx 作为前端代理,Ubuntu 上的 HAProxy 负载均衡

获取负载均衡器的 IP 地址:

输入 /sbin/ifconfig 并找出 droplets 的 IP 地址。

例如:inet addr:107.170.40.112

设置 DNS 记录


DNS A 记录将域名(例如 www.digitalocean.com)转换为可访问的 IP 地址。

一旦您完成了在每个 droplet 上配置负载均衡反向代理的步骤,下一步是通过 DigitalOcean 的 DNS 服务添加 2 个 A 记录,将您的域名指向 IP 地址。

登录到您的 DigitalOcean 控制面板:

单击左侧菜单上的 DNS,并添加一个新的域名,将其指向上一步中的负载均衡器 droplet。

添加新的 A 记录:

一旦您进入下一步,点击上方的“添加记录”,创建一个新的 A 记录,使用另一个负载均衡器 droplet 的 IP 地址。

设置应用服务器


下一步是设置应用服务器。

为了使全球分发起作用,就像您创建的第一个负载均衡服务器一样,您需要在两个新的 droplet 上托管您的应用服务器。

注意: 您也可以在与负载均衡器相同的机器上运行每个应用服务器;但是,这并不被推荐。

在两个位置部署或复制您的应用服务器 droplet。例如:

NY 1NY 2;在 AMS 1AMS 2;在 SF 1NY 2 等。

回到第一步,并按照负载均衡器设置文章的说明,将它们配置为代理传入连接到这两个应用服务器 droplet。

设置数据库


很难想象一个没有数据库的 Web 应用程序。在将应用程序分布到多个服务器上时,最困难的部分可能是处理数据库。

根据您选择的数据库服务器,创建一个跨多个位置的重复配置。

参见:

对于 MySQL 主/从复制:

如何在 MySQL 中设置主从复制

对于 MySQL 主/主复制:

如何设置 MySQL 主-主复制

对于 PostgreSQL 主/从复制:

如何在 PostgreSQL 上设置主从复制

完成创建复制数据库结构后,将您的应用程序指向使用它们的地址,如在教程中与 DB 服务器交互的方式。

阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-04-21/160858.html,文章来源:网络cs,作者:言安琪,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

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

文章评论