利用Microsoft Azure Traffic Manager保证业务的可用性 推荐 原创 挥墨的书童 2015-05-29 09:47:51 博主文章分类:Windows Azure ©著作权 文章标签 Microsoft 负载平衡 高可用 携程 文章分类 数字化转型 ©著作权归作者所有:来自51CTO博客作者挥墨的书童的原创作品,如需转载,请与作者联系,否则将追究法律责任 最近携程事件导致携程网站和APP停止服务长达将近9个小时。支付宝因为光缆被挖断导致部分用户服务不可用,艺龙遭到攻击导致网站崩溃,等等。企业中的业务安全和可用性又浮现了出来,回过头来看,有哪些现有的技术能够避免此类状况,这篇文档我们先聊一聊如何利用Microsoft Azure Traffic Manager让你的应用保持高可用状态 先来看下Microsoft Azure Traffic Manager 到底是什么东东。 使用 Microsoft Azure Traffic Manager 可以控制向指定的终结点(可能包括 Azure 云服务、网站和其他终结点)分配用户流量。Traffic Manager 的工作原理是将智能策略引擎应用到对 Internet 资源域名执行的域名系统 (DNS) 查询。Azure 云服务或网站可以在世界各地不同的数据中心内运行。说的简单易懂点Traffic Manager就是一个智能的DNS解析。 能帮助我们做什么?提高关键应用程序的可用性,当你的应用程序的某个节点出问题的时候,Traffic Manager可以通过智能的监视你的终结点(云服务、网站和其他角色)的服务状态,然后把流量迁移到正常的终结点。提高应用程序的响应性,当你的应用程序客户遍布全国甚至是世界各地时,如何能够把流量引到离他们最近的数据中心,已达到最快的响应速度。这就是Traffic Manager需要做的事情。大型复杂的流量分配,如果你有像淘宝、京东等这类网站时,你需要复杂的流量分配规则来满足用户的快速访问需求,使用嵌套的 Traffic Manager 配置文件(在其中的一个 Traffic Manager 配置文件可以将另一个 Traffic Manager 配置文件作为终结点),可以创建配置来优化更大、更复杂部署的性能和分布。工作原理是啥?我来根据这张图来解释下:1. 首先客户端需要知道IP地址才能去访问应用,然后就发送域名解析请求到公网域名www.contoso.com(就是在公网域名服务商注册的域名)。2. 请求发到公网DNS上进行解析,然后公网DNS根据你的配置的CNAME记录把请求发给Traffic Manager。3. Traffic Manager会根据自己的配置文件(性能、循环法、故障转移),确定最佳终结点,选择好终结点后,把终结点的IP信息返回给客户端。4. 客户端根据解析到的IP地址信息,直接发送请求道终结点。怎么配置Traffic Manager?Traffic Manager包含三种负载平衡方法:故障转移:如果终结点位于相同或不同的 Azure 数据中心(在管理门户中称为区域)内,并且你希望对所有流量使用一个主终结点,但是希望在主终结点或备用终结点不可用时提供备份,请选择“故障转移”。循环:如果要将负载分配到同一数据中心内的一组终结点或者分配到不同的数据中心,请选择“循环”。性能:如果终结点位于不同的地理位置,并且你希望请求客户端使用“最靠近的”终结点(因为延迟最低),请选择“性能”。三个不同的负载平衡方法,三个不同的选择,下面我主要就故障转移场景来演练,如何通过Powershell创建Traffic Manager,并进行基本的配置。创建故障转移的负载平衡器New-AzureTrafficManagerProfile -Name "cloudvip" -DomainName "cloudvip.trafficmanager.net" -LoadBalancingMethod "Failover" -Ttl 30 -MonitorProtocol "Http" -MonitorPort 80 -MonitorRelativePath "/"表示我要创建一个cloudvip的Profile,域名为cloudvip.trafficmanager.net,负载平衡方法是故障转移,监视内容:协议http 端口 80 默认路径。我们进入门户可以看到已经创建好该Traffic Manager。加入终结点这时我们的Traffic Manager并没有包含任何终结点,下面我开始通过Powershell把终结点加进来。1.$TrafficManagerProfile = Get-AzureTrafficManagerProfile -Name "cloudvip" 2.Add-AzureTrafficManagerEndpoint -TrafficManagerProfile $TrafficManagerProfile -DomainName "blog01.cloudapp.net" -Status "Enabled" -Type "CloudService" | Set-AzureTrafficManagerProfile第一个命令是使用Get-AzureTrafficManagerProfile得到cloudvip的参数然后存放在TrafficManagerProfile变量中。第二个命令是添加域名为blog01.cloudapp.net的云服务,然后通过Set-AzureTrafficManagerProfile变更到azure中。带有权重参数加入终结点使用同样方法添加另外一个终结点,这次加上权重的参数。Add-AzureTrafficManagerEndpoint -TrafficManagerProfile $TrafficManagerProfile -DomainName "blog02.cloudapp.net" -Status "Enabled" -Type "CloudService" -Weight 2 | Set-AzureTrafficManagerProfile查看终结点详细信息$TrafficManagerProfile.Endpoints | Format-List使用PowerShell修改权重可以使用Set-AzureTrafficManagerEndpoint重新设置终结点,我来演示把blog01节点的权重改成3.Set-AzureTrafficManagerEndpoint -TrafficManagerProfile $TrafficManagerProfile -DomainName "blog01.cloudapp.net" -Status "Enabled" -Type "CloudService" -Weight 3 | Set-AzureTrafficManagerProfile查看结果最后我们在客户端进行测试这时我们可以看到Traffic Manager把流量引入到blog01上了,这时我如果想把节点2(blog02)作为主节点,要怎么设置呢?你可以运行一下命令1. $Profile = Get-AzureTrafficManagerProfile -Name "MyProfile" 2. $Profile.Endpoints[0],$Profile.Endpoints[1] = $Profile.Endpoints[1],$Profile.Endpoints[0] 3. Set-AzureTrafficManagerProfile -TrafficManagerProfile $PROFILE从结果中我们可以看到,节点2变成了主节点,我们再来ping一下试试。现在是节点2在提供服务。总结:从上面的示例中,我们可以看到,一个网站设计成一个高可用架构,如果一个站点遭到毁灭性的攻击和破坏,我们可以快速的切换到备用站点,以提供服务。从而避免类似携程的事件发生。 赞 收藏 评论 分享 举报 上一篇:如何让Azure Point-to-Site VPN一直在线 下一篇:浅谈Windows Azure 存储服务 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 Azure Update Manager简介 Azure 更新管理器不仅仅是一个管理更新的工具;它是一个全面的解决方案,旨在帮助组织维护其系统的完整性、安全性和性能。对于致力于在不断发展的数字世界中实现卓越运营和合规性的企业来说,这是一项必不可少的服务 Azure Windows 补丁更新 安全 使用Azure Update Manager管理补丁更新 Azure Update Manager给我们提供了多种方式来管理云端和本地的补丁更新,比如我们可以使用策略来定期的对虚拟机进行评估,进而实现大规模的计划更新;也可以使用动态范围的更新方式来计划云端或本地的虚拟机更新。接下来我们会带着大家看下如何使用Azure Update Manager来管理VM是补丁更新 Azure 安全 补丁更新 合规性 【亿级数据专题】「分布式消息引擎」 盘点本年度我们探索服务的低延迟可用性机制方案实现 在充满挑战的2023年度,我们不可避免地面对了一系列棘手的问题,例如响应速度缓慢、系统陷入雪崩状态、用户遭受不佳的体验以及交易量的下滑。这些问题的出现,严重影响了我们的业务运行和用户满意度,为了应对这些问题,我们所在团队进行了大量的研究和实践,提出了低延迟高可用的解决方案,并在分布式存储领域广泛应用。 应用程序 JVM 内存回收 redis 保证数据可用性 # Redis 数据可用性保障## 引言在现代互联网应用中,数据的高可用性是至关重要的。当用户数量庞大,业务复杂,数据量庞大时,数据的稳定性和可用性成为了每一个开发者必须考虑的重要问题。Redis 作为一种高性能的内存数据库,其数据可用性尤为重要。本文将介绍 Redis 是如何保证数据可用性的,并结合示例代码来演示。## Redis 数据可用性保障机制### 复制(Replicati Redis 数据 3d Windows Azure体验之VM的可用性集 今天在一个群上看到一个网友发一个问题,问题是这样描述的:在windows azure上建四台VM,这四台机都要做高可用 做好后关掉三台,留下一台做生产,当用户数量访问大时cup需求会增大,达到一定的阀值后自动开户一台再再增大再开启一台,类推下去 当CPU下降到一定的阀值时就自动关闭一台VM,再降低再关闭,按此类推下去这种机制肯定是公有云必有的机 Windows SLA Azure 可用性集 消息队列-------如何保证高可用性(HA) 一.消息队列如何保证高可用性?rabbitMQ不是分布式的架构设计分为三种设计模式:一.单机模式二.普通集群模式(可用性无保障,只是解决了吞吐量问题,但是对于HA高可用并不能进行保障)三.镜像集群模式(具有HA高可用性,但是本质也是一个集群部署的方式)二.普通集群模式图用户 rabbitMQ作为集群进行部署到多台机器上 ... 数据 高可用性 消息队列 Kubernetes 控制平面的高可用性保证 1.堆叠式etcd 集群的高可用拓扑如图3-6 所示,堆叠式是指etcd 堆叠在运行控制平面组件 kubernetes 高可用 负载均衡 客户端 Azure VM可用性集及自动缩放 在上一个试验中,我们已经完成了VM的NLB配置,为了增加VM的可用性,有更高的SLA保障,我们需要为虚拟机配置可用性集,以使虚拟机在不同的故障域中,确保在出现本地网络故障、本地磁盘硬件故障以及平台可能需要的任何计划内停机时,应用程序仍然可用。1 创建可用性集进入Azure 管理门户选择计算选中VM1点击配置在可用性集选择创建可用性集输入可用性集的名称,点击保存 此时发现虚拟机会进行更新 vm Azure 自动缩放 40.Azure更改VM可用性集 我们在创建VM时如果要考虑到该虚拟机要确保在Azure平台计划或非计划的维护期间,至少有一台虚拟机可用,也就是俗称的让该虚拟机高可用。那么就一定要创建可用性集,但门户上也写出了在创建后不能更改。 首选需要大家注意一点就是可用性集有一个特点: 在一个可用性集的虚拟机采用的是托管磁盘,那么后面新建的虚拟机加入到这个可用性集的磁盘是否必须是托管磁盘。简单说就是同一个可用性集的所有虚拟机是必须是同一种磁 云计算 云平台 利用日志传送实现高度可用性 日志传送概述: 日志传送由三项操作组成: 在主服务器实例中备份事务日志 将事务日志文件复制到辅助服务器实例 在辅助服务器实例中还原日志备份 主服务器和数据库 辅助服务器和数据库 监视服务器 日志传送操作-->备份作业 复制作业 还原作业 警报作业 &n 服务器 日志 可用性 休闲 传送 利用Haproxy实现WEB高可用性 比Nginx主目录下设定一个特定文件(如welcome.htm只转发到一台服务器上。这个功能LVS,是基于cookies的会话保持模块),不过效果如何我暂时还没有测试。 一, 启动 /usr/local/src1/HAproxy/haproxy-1.2.17/hapro 职场 WEB 休闲 Haproxy redis主节点挂了 如何保证可用性 # 保证redis可用性方案## 引言在实际生产环境中,redis作为一个常用的缓存和存储方案,通常会部署成主从模式以提高可用性。但是当redis的主节点挂掉时,为了保证系统的可用性,我们需要采取一些措施来避免数据丢失和服务中断。本文将介绍一种解决方案来应对redis主节点挂了的情况,保证系统的可用性。## 方案概述我们可以通过在redis主节点挂掉后自动进行主从切换,将一个从节点 redis 客户端 主从切换 用watchdog 保证服务器的高可用性 watchdog 是一款优秀的系统监控工具。普通情况下,它看似无关紧要,但却能在危机关头力挽狂澜。因为它能够在系统资源即将耗尽或即将崩溃时主动重启系统,避免由于硬件罢工而导致的被动重启或宕机造成的数据损失和业务损失。这里将讨论软件watchdog ,而不是硬件watchdog 。 watchdog 实际上是一个用于系统主动重启的计 linux watchdog k8s业务可用性监控 在Kubernetes(K8S)中,业务可用性监控是非常重要的一环,它能够帮助开发者及时了解业务的运行状态,及时发现和解决问题,保证业务的正常运行。下面我将向你介绍如何实现K8S业务可用性监控。### K8S业务可用性监控流程下面是K8S业务可用性监控的主要流程:| 步骤 | 操作 || ---- | ---- || 1 | 创建Deployment或StatefulSet部署应用 Deployment 数据 YAML 如何保证企业IT基础设施的高可用性 l 双路供电(供电局??)UPS(,发电机(按需) 空调系统 硬件: 系统:服务器集群;多网卡冗余;多电源冗余 存 123 Redis如何保证可用性的 redis保证高可用 Redis的高可用策略从根本上来讲是为了保证数据的安全,本文创作时使用的Redis版本为v5.0.5。一、Redis的高可用策略1、持久化持久化是最简单的高可用方法,有时甚至不被归为高可用的手段,主要作用是将数据存储到硬盘,保证数据不会因为进程退出而丢失。2、主从复制(读写分离)复制是Redis高可用的基础,哨兵和集群都是在复制基础上实现高可用的。复制主要实现了数据的多机备份,以及读操作的负载均衡 Redis如何保证可用性的 Redis 高可用 分布式 集群 高可用性 java 高可用性要求保证 架构高可用的评价指标是什么?可用性 = 平均故障时间 / 系统总运行时间一般要保证4个9从可用性的定义,可以很清楚地知道架构高可用的要求。理论上的要求是,在互联网大流量高并发的情况下,网站需要做到7 * 24小时可以正常对外提供服务。然而,服务器硬件故障是不可避免的。那么很显然,当硬件出现故障的时候,我们应该怎么办呢?启用备用方案。备用方案是什么呢?就是当一台服务器宕机时,把用户的请求转移到另一个 高可用性 java 高可用 异步调用 消息中间件 hadoop高可用性 hdfs高可用性 在Hadoop2.0.0之前,NameNode(NN)在HDFS集群中存在单点故障(single point of failure),每一个集群中存在一个NameNode,如果NN所在的机器出现了故障,那么将导致整个集群无法利用,直到NN重启或者在另一台主机上启动NN守护线程。 主要在两方面影响了HDFS的可用性: (1)、在不可预测的情况下,如果NN所在的机器崩溃了,整个集群将无法利用,直 hadoop高可用性 大数据 数据库 守护进程 命名空间 架构系统可用性 计算 系统的可用性计算 系统可用性 经常听到“五个九”这样的词,它指的是99.999%的正常运行时间或者可用性。虽然从绝对意义上来讲,这是最好的可用性,但也要认识到,由许多这种设备组成的系统的整体可靠性可以相差很大,这取决于该系统能否容忍单个组件故障。假设一套系统需要5台可靠性达99%的服务器才能运行。那么,该系统的可用性为0.99*0.99*0.99*0.99*0 架构系统可用性 计算 服务器 故障时间 系统可用性 怎么保证RabbitMQ和kafuka集群的高可用性? rabbitMQ有三种模式:单机模式,普通集群模式,镜像集群模式 RabbitMQ的高可用性 RabbitMQ是比较有代表性的,因为是基于主从做高可用性的,我们就以他为例子讲解第一种MQ的高可用性怎么实现。 rabbitmq有三种模式:单机模式,普通集群模式,镜像集群模式 1)单机模式 就是demo RabbitMQ 数据 kafka 高可用性 单机模式