您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

Azure Database for MySQL 中的连接体系结构

适用对象: Azure Database for MySQL - 单一服务器

本文介绍 Azure Database for MySQL 的连接体系结构,以及如何在 Azure 内部和外部将流量从客户端定向到 Azure Database for MySQL 实例。

连接体系结构

可以通过网关连接到 Azure Database for MySQL,该网关负责将传入连接路由到服务器在群集中的物理位置。 下图演示了流量流。

连接体系结构概述

当客户端连接到数据库时,指向服务器的连接字符串将解析为网关 IP 地址。 网关侦听端口 3306 上的 IP 地址。 在数据库群集中,流量转发到相应的 Azure Database for MySQL。 因此,为了通过某种方式(例如通过公司网络)连接到服务器,必须打开客户端防火墙,使出站流量能够访问我们的网关。 下面是一个按区域分类的可供我们的网关使用的 IP 地址的完整列表。

Azure Database for MySQL 网关 IP 地址

网关服务托管在一个 IP 地址后面的一组无状态计算节点上,当你的客户端尝试连接到 Azure Database for MySQL 服务器时,将首先访问该 IP 地址。

在持续的服务维护过程中,我们会定期刷新托管网关的计算硬件,以确保提供最安全和性能最佳的体验。 刷新网关硬件后,将首先生成一个新的计算节点环。 这一新通道为所有新创建的 Azure Database for MySQL 服务器提供流量,在同一区域中,它采用的 IP 地址将与较旧的网关通道采用的地址不同,目的在于使流量区分开来。 新环完全正常运行后,为现有服务器提供服务的较旧的网关硬件将计划解除授权。 在解除网关硬件的授权之前,运行其服务器并连接到较旧网关通道的客户可通过电子邮件和 Azure 门户提前三个月收到通知。 如果你在应用程序的连接字符串中硬编码网关 IP 地址,

  • 网关的解除授权可能会影响与服务器的连接。 不建议这样做。 应在应用程序的连接字符串中使用服务器的完全限定域名 (FQDN),其格式为 .mysql.database.azure.com。
  • 请勿为使出站流量能够到达新的网关环而在客户端防火墙中更新较新的网关 IP 地址。

下表列出了所有数据区域的 Azure Database for MySQL 网关的网关 IP 地址。 下表中保留了每个区域的网关 IP 地址的最新信息。 在下表中,列表示以下内容:

  • 网关 IP 地址: 此列列出最新一代硬件上承载的网关的当前 IP 地址。 如果要预配新服务器,建议你打开客户端防火墙,以允许此列中列出的 IP 地址的出站流量。
  • 网关 IP 地址(即将停用): 此列列出当前将要停用的旧一代硬件上承载的网关的 IP 地址。 如果要预配新服务器,则可以忽略这些 IP 地址。 如果已有服务器,请继续为这些 IP 地址保留防火墙的出站规则,因为我们尚未停用这些 IP 地址。 如果删除这些 IP 地址的防火墙规则,可能会出现连接错误。 但是,你应该在收到停用通知后立即主动将“网关 IP 地址”列中列出的新 IP 地址添加到出站防火墙规则中。 这将确保当服务器迁移到最新的网关硬件时,不会中断与服务器的连接。
  • 网关 IP 地址(已停用): 此列会列出已停用且不再运行的网关环的 IP 地址。 可以安全地从出站防火墙规则中删除这些 IP 地址。
区域名称 网关 IP 地址 网关 IP 地址(即将停用) 网关 IP 地址(已停用)
澳大利亚中部 20.36.105.0
澳大利亚中部 2 20.36.113.0
澳大利亚东部 13.75.149.87、40.79.161.1
澳大利亚东南部 191.239.192.109、13.73.109.251
巴西南部 191.233.201.8、191.233.200.16 104.41.11.5
加拿大中部 40.85.224.249
加拿大东部 40.86.226.166
美国中部 23.99.160.139、52.182.136.37、52.182.136.38 13.67.215.62
中国东部 139.219.130.35
中国东部 2 40.73.82.1
中国北部 139.219.15.17
中国北部 2 40.73.50.0
东亚 191.234.2.139、52.175.33.150、13.75.33.20、13.75.33.21
美国东部 40.71.8.203、40.71.83.113 40.121.158.30 191.238.6.43
美国东部 2 40.70.144.38、52.167.105.38 52.177.185.181
法国中部 40.79.137.0、40.79.129.1
法国南部 40.79.177.0
德国中部 51.4.144.100
德国北部 51.116.56.0
德国东北部 51.5.144.179
德国中西部 51.116.152.0
印度中部 104.211.96.159
印度南部 104.211.224.146
印度西部 104.211.160.80
Japan East 40.79.192.23、40.79.184.8 13.78.61.196
日本西部 191.238.68.11、40.74.96.6、40.74.96.7 104.214.148.156
韩国中部 52.231.17.13 52.231.32.42
韩国南部 52.231.145.3 52.231.200.86
美国中北部 52.162.104.35、52.162.104.36 23.96.178.199
北欧 52.138.224.6、52.138.224.7 40.113.93.91 191.235.193.75
南非北部 102.133.152.0
南非西部 102.133.24.0
美国中南部 104.214.16.39、20.45.120.0 13.66.62.124 23.98.162.75
东南亚 40.78.233.2、23.98.80.12 104.43.15.0
瑞士北部 51.107.56.0
瑞士西部 51.107.152.0
阿联酋中部 20.37.72.64
阿拉伯联合酋长国北部 65.52.248.0
英国南部 51.140.144.32 51.140.184.11
英国西部 51.141.8.11
美国中西部 13.78.145.25
西欧 13.69.105.208、104.40.169.187 40.68.37.158 191.237.232.75
美国西部 13.86.216.212、13.86.217.212 104.42.238.205 23.99.34.75

连接重定向

Azure Database for MySQL 支持一个额外的连接策略(即“重定向” ),该策略有助于降低客户端应用程序与 MySQL 服务器之间的网络延迟。 利用重定向,在建立与 Azure Database for MySQL 服务器的初始 TCP 会话后,服务器会将承载 MySQL 服务器的节点的后端地址返回到客户端。 此后,所有后续数据包会绕过网关直接流向服务器。 由于数据包会直接流向服务器,因此延迟和吞吐量这两个指标的表现得到了改善。

引擎版本为 5.6、5.7 和 8.0 的 Azure Database for MySQL 服务器支持此功能。

对重定向的支持可通过 Microsoft 开发的 PHP mysqlnd_azure 扩展获得,也可在 PECL 上获得。 有关如何在应用程序中使用重定向的详细信息,请参阅配置重定向一文。

重要

PHP mysqlnd_azure 扩展对重定向的支持目前为预览版。

常见问题

你需要了解有关此计划内维护的哪些信息?

这仅是 DNS 更改,此更改使该功能对客户端透明。 在 DNS 服务器中更改 FQDN 的 IP 地址时,本地 DNS 缓存会在 5 分钟内刷新,由操作系统自动完成。 本地 DNS 刷新后,所有新连接将会连接到新 IP 地址,所有现有连接将会一直连接到旧 IP 地址而不会中断,直到旧 IP 地址完全停用。 旧 IP 地址大约需要三到四周才能停用。因此,它应该对客户端应用程序没有影响。

我们将会停用什么?

仅网关节点会被停用。 当用户连接到其服务器时,连接的第一站是网关节点,然后连接会被转发到服务器。 我们将要停用旧的网关环(不是运行服务器的租户环),请参阅连接体系结构以获得更多说明。

如何验证你的连接是将连接到旧网关节点还是新网关节点?

Ping 服务器的 FQDN,例如 ping xxx.mysql.database.azure.com。 如果返回的 IP 地址是上面文档中“网关 IP 地址(即将停用)”下列出的 IP 之一,则表明你的连接会通过旧网关。 与此相反,如果返回的 IP 地址是“网关 IP 地址”下列出的 IP 之一,则表明你的连接会通过新网关。

你也可以通过客户端应用程序使用端口 3306 对数据库服务器执行 PSPing 或 TCPPing 进行测试,并确保返回的 IP 地址不是即将停用的 IP 地址之一

我如何知道维护何时结束?旧 IP 地址停用后,我是否还会收到另一个通知?

你会收到一封电子邮件,通知你我们会何时开始维护工作。 维护最多可能需要一个月的时间,具体取决于我们需要在各个区域迁移的服务器数量。 请准备客户端以使用 FQDN 或上表中的新 IP 地址连接到数据库服务器。

如果客户端应用程序仍连接到旧的网关服务器,我该怎么办?

这表明应用程序是使用静态 IP 地址而不是 FQDN 连接到服务器。 查看连接字符串和连接池设置、AKS 设置,甚至查看源代码。

对应用程序连接是否有任何影响?

此维护只是一项 DNS 更改,因此它对客户端是透明的。 在客户端中刷新了 DNS 缓存(由操作系统自动完成)后,所有新连接都会连接到新 IP 地址,而所有现有连接仍会正常工作,直到旧 IP 地址完全停用为止(通常为数周之后)。 这种情况下不需要重试逻辑,但让应用程序配置重试逻辑不会有坏处。 请使用 FQDN 连接数据库服务器或在应用程序连接字符串中列出新的“网关 IP 地址”。 此维护操作不会删除现有连接。 它只会将新的连接请求发送到新的网关环。

能否请求特定时段进行维护?

由于迁移应该是透明的,并且不会对客户的连接造成影响,因此我们预计大多数用户都不会遇到问题。 请主动检查应用程序,并确保使用 FQDN 连接到数据库服务器,或在应用程序连接字符串中列出新的“网关 IP 地址”。

不会,这是网关硬件停用,与专用链接或专用 IP 地址无关,它只会影响“即将停用的 IP 地址”下提到的公共 IP 地址。

后续步骤