多服务器构建高可用公网服务 (多台公网服务器高可用)

:实现稳定可靠的在线服务

随着互联网技术的迅速发展和普及,在线服务已经成为了当今互联网中不可或缺的一部分。互联网用户也在不断地追求更为完美和优质的在线服务体验。因此,如何构建稳定、高效的公网服务成为了互联网企业和软件开发者们不得不关注的一个重要问题。

在开发公网服务时,关注用户体验不可少,而可靠性和稳定性则是不可牺牲的因素。为了实现这些目标,是一个非常有效的方式。

那么,多服务器是如何构建的呢?

多服务器架构实现高可用公网服务的基本原理是将多个服务器联合起来构成一个整体来共同分担网络请求和流量,当其中一个服务器出现故障时,其余的服务器将会接管它的工作,提供持续稳定的在线服务体验。这种分布式架构可以避免单点故障的影响,为用户提供了更为可靠和快速的服务。

下面我们将详细介绍如何构建多服务器高可用公网服务的实现细节。

之一步:构建服务器集群

在构建多服务器集群时,需要选择可靠的服务器供应商、操作系统和硬件配置,以确保服务器的高性能和可靠性。对于服务器集群的部署,可以使用负载均衡器来实现。一般来说,负载均衡器可以通过软件或硬件的方式实现,另外,也可以采用反向代理的方式来处理网络请求。由于负载均衡器的作用,客户端可以找到最近的可用服务器并将流量路由到其上,从而更大限度地优化了服务器资源。

第二步:数据同步

当一个请求被远程服务器处理时,需要确保数据的即时同步。因此,数据同步是多服务器高可用公网服务的关键点。对于数据同步,采用数据库集群方式可以确保数据的准确性和同步性。此外,还可以使用分布式缓存技术来确保数据的高效使用。分布式缓存可以将数据存储在本地服务器上,提高了数据访问的速度和效率。

第三步:故障恢复

在多服务器集群中,当某个服务器发生故障时,需要进行快速故障恢复。因此,必须实现故障监控系统,以便及时发现故障并且迅速实施修复措施。针对不同的故障类型和影响程度,需要采用不同的故障恢复策略。

第四步:应用监控

为了持续稳定地提供公网服务,需要对服务器集群中的应用程序进行实时监控。应用监控系统需要定义合适的监控指标,及时发现并解决现有的问题,保证应用程序的高效运行。

最后需要指出的是,构建高可用公网服务是一个复杂而多样化的过程,需要合理规划,科学决策。在构建中,还需结合所提供的服务类型、用户数量、地理分布以及应用程序的运行特性等方面因素,进行详细而周密的分析,以实现其更优化的部署。同时,不断地实践和持续监控也是必不可少的步骤,以便及时处理和解决各类问题和挑战。

是一项非常有益的工具和技术,可以为互联网用户提供更好的在线服务。只要运用恰当,可以大幅提高公网服务的效率和可靠性,是一项必不可少的技术手段。

相关问题拓展阅读:

linux上两台机器搞个weblogic高可用性集群

其实,你这个只是主备,还并不是高可用集群。你也用不着共享存储,直接做首液到两个WebLogic服务器双活,然后用Http Server进行负载均衡,停掉任春雀何一台服务器扒芹早,服务都不受影响!

我正在配置你说的这种互备模式,已配纤消置完成。但是目前缺少进程监控脚本,只能实现手动切换,不此神能实森竖亏现自动切换。

如何在 UStack 上实现虚拟机高可用

UStack 为所有用户提供可靠、安全的云服务,但是如果用户希望在其上实现更加高可用的虚拟机来保证一些关键业务,在 UStack 上也同样可以方便快捷的完成。

@陈沙克 在他的博客里曾讲述了如何在 UStack 上通过 API 使用 Allowed address pairs,这里我们将同样通过 Allowed address pairs 来实现 VRRP 完成虚拟机的高可用。

VRRP 全称虚拟路由器冗余协议,通过 VRRP 我们可以将一些虚拟机配成一个备份组,然后指定一个 master 节点,当 master 节点失效时,备份组将会根据 VRRP 协议进行选举,选举后一个 slave 节点将代替原失效的 master 节点对外提供服务,在提高可靠性的同时,简化了主机的配置,避免了单点故障,是常见的高可用方案。

实现 VRRP 协议,我们可以使用开源的 keepalived 软件,优点是配置简单,功能也颇为强大,下面我就以 keepalived 来实现一个简单的双机热备对外提供 HTTP 服务。

在 UStack 上建立环境

创建虚拟网络与云主机

首先我们建立一个 VRRP 用的网络和子网,且将其命名为 vrrp-net 和 vrrp-subnet(10.10.0.0/24),然后在上面建立两个虚拟机,我将其命名为 vrrp-node-1(10.10.0.4)和 vrrp-node-2(10.10.0.5)。

两个节点都没有分配浮动 IP,只是将其通过一个 router 连接到外网,为了能够 ssh 登录到这两个虚拟机,我们可以在路由器上设置转发规则,指向各自的 22 端口,方便我们管理。

创建公网IP和虚拟网卡

然后我们需要申请一个公网 IP 作为这两个虚拟机对外服务的出口 IP,当然,如果你的虚拟机不需要对外提供服务的话就不必申请公网 IP 了。

再在 vrrp-subnet 上新建一个虚拟网卡,只需要进入左侧边栏”虚拟数据中心”的“虚拟网卡”,再陵掘点击“新建虚拟网卡”,在“选择子网”里选择 vrrp-subnet,我们可以在这里指定一个 IP,比如 10.10.0.200,再指定一个名字,比如尺汪手 vrrp-port。

通过 API 实现高级控制

下面我们需要将前面申请的公网 IP 关联陵嫌到这个虚拟网卡上,这个操作我们目前不支持在界面上操作,需要用 API 完成,首先我们做一些准备工作。

准备工作

1. 记录 Floating IP 的 UUID、两个虚拟机上的虚拟网卡的 UUID 和 vrrp-port 的 UUID:Floating IP 的 UUID 可以在”公网 IP“页点开具体的 IP 即可看到,虚拟网卡的 UUID 则是在“虚拟数据中心”的“虚拟网卡”页里,通过“关联云主机”这一栏去查这个虚拟网卡属于哪个云主机,然后点击这个虚拟网卡,记录其 UUID。

2. 记录你的 User ID 和 Project ID:在 UOS 的 API中,每个用户都用其 User ID 和 Project ID 来做识别和资源的隔离,这两个 ID 可以将鼠标悬停在右上角后点击“个人设置”查看。

获得 Token

下面就可以进入 API 的操作了,首先获取一个 token:

  curl -i -X POST

\

  -H “Content-Type: application/json” \

  -H “Accept: application/json” \

  -d ‘{“auth”: {“scope”: {“project”: {“id”: “{PROJECT_ID}”}}, “identity”: {“password”: {“user”:{ “password”: “{PASSWORD}”, “id”: “{USER_ID}”}}, “methods”: }}}’

  复制代码

注意将里面的 {PROJECT_ID}、{PASSWORD}、{USER_ID} 替换成你自己的真实信息,下面的命令也做类似处理。

在终端运行后,我们可以获得一个 token:

图中之一个红框部分为我们输入的代码,第二个红框部分为我们获得的 Token,接下来每一步都需要用到这个 Token,请记住这个 Token。

将公网 IP 绑定到虚拟网卡

首先我们将前边的 Floating IP 绑定到 vrrp-port 上:

  curl -s -X PUT

{FLOATING_IP_UUID} \

  -H “X-Auth-Token: {TOKEN}” \

  -H “Content-Type: application/json” \

  -H “Accept: application/json” \

  -d ‘{“floatingip”: {“port_id”: “{VRRP-PORT-UUID}”}}’

  复制代码

将其中的 {FLOATING_IP_UUID}、{TOKEN}、{VRRP-PORT-UUID} 换成我们前面查的真实的 UUID。

之一个红框内为运行的 curl 命令,第二个红框内可以看到“Fixed IP”已经成功变成 vrrp-port 的 IP 了。或者进入Ustack控制台 ,此时应能看到本来 “Available” 的公网 IP 此时已变成了 “In Use”

添加 Allowed address pairs

然后我们再添加 Allowed address pairs:

  curl -s -X PUT

{NODE-1-PORT-UUID} \

  -H “X-Auth-Token: {TOKEN}” \

  -H “Content-Type: application/json” \

  -H “Accept: application/json” \

  -d ‘{“port”: {“allowed_address_pairs”: }}’

  复制代码

将其中的 {NODE-1-PORT-UUID}、{TOKEN}、{VRRP-FLOATING-IP} 换成我们前面查的真实的 UUID。改完 Node-1 后同样处理 Node-2 即可。

之一个红框内为运行的 curl 命令,第二个红框内可以看到“allowed address pairs”已经成功变成了 vrrp-port 的 IP 了。

至此,UOS 上的准备就完成了,下面我们 ssh 到虚拟机去配置 keepalived。

配置虚拟机

配置 keepalived

keepalived 的配置可以做很多,他可以用来做3层及以上的高可用(TCP Check、HTTP Get、SSL Get、MISC Check), 参考 Keepalived 的 User Guide,里面详细介绍了 Keepalived 的使用方法。这里我们不做详细的 Health check,仅保证虚拟机连接正常,即当虚拟机网络断开时将流量切换到其他虚拟机。

首先在节点中安装 keepalived:

  sudo apt-get install keepalive

  复制代码

然后是 Master 节点的设置:

  $ cat /etc/keepalived/keepalived.conf

  vrrp_instance vrrp_group_1 {

  state MASTER

  interface eth0

  virtual_router_id 1

  priority 100

  authentication {

  auth_type PASS

  auth_pass password

  }

  virtual_ipaddress {

  10.10.0.200/24 brd 10.0.0.255 dev eth0

  }

  }

  复制代码

Slave 节点的设置:

  $ cat /etc/keepalived/keepalived.conf

  vrrp_instance vrrp_group_1 {

  state BACKUP

  interface eth0

  virtual_router_id 1

  priority 50

  authentication {

  auth_type PASS

  auth_pass password

  }

  virtual_ipaddress {

  10.10.0.200/24 brd 10.0.0.255 dev eth0

  }

  复制代码

修改完配置后需要重启 keepalived:

  service keepalived restart

  复制代码

配置 Apache

为了演示高可用,我们需要安装一个 Web 服务器,比如 Apache:

  sudo apt-get install apache2

  复制代码

分别将两个虚拟机的主页设置成 “VRRP-node1″ 和 “VRRP-node2″:

  $ sudo echo “VRRP-node1” > /var/www/index.html

  $ sudo echo “VRRP-node2” > /var/www/index.html

  复制代码

验证高可用

此时我们尝试访问 42.62.73.143:

  $ curl 42.62.73.143

  VRRP-node1

  复制代码

现在我们让 VRRP-node1 的“虚拟网卡”转为关闭状态,这个可以通过设置虚拟网卡的 admin_state_up 来实现:

  curl -s -X PUT

{NODE-1-PORT-UUID} \

  -H “X-Auth-Token: {TOKEN}” \

  -H “Content-Type: application/json” \

  -H “Accept: application/json” \

  -d ‘{“port”: {“admin_stat_up”: }}’

  复制代码

再尝试访问 42.62.73.143:

  $ curl 42.62.73.143

  VRRP-node2

  复制代码

多台公网服务器高可用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于多台公网服务器高可用,多服务器构建高可用公网服务,linux上两台机器搞个weblogic高可用性集群,如何在 UStack 上实现虚拟机高可用的信息别忘了在本站进行查找喔。


数据运维技术 » 多服务器构建高可用公网服务 (多台公网服务器高可用)