在如今科技高速发展的时代,几乎每个企业都依赖互联网,离不开互联网。很多企业的业务也都依托于互联网,比如我们熟知的电商、股市、直播、甚至是用于乘坐地铁、公交买票过闸的APP。如今可以说是一个互联网时代的完全体。
但你们是否想过一个问题?如果在上班高峰期,我们使用的公共交通购票的APP崩溃了5分钟,或是股市交易系统崩溃了5分钟,产生的影响和损失会是多么巨大!
所以在严重依赖互联网的今天,互联网应用的稳定性和高可用性尤为重要!哪怕一分钟的宕机,也可能造成巨大的损失或客户的流失。
但保证高可用不是一件容易的事情。人力、物力、软件、硬件都是需要极大的投入。所以基于各种开销及技术难度层面考虑,很多企业会选择应用上云,将这些复杂且困难的问题交给云运营商来解决。
随着我们客户量的逐渐增多,也通过“上云”来保证网站稳定性和高可用。最近正值华为云828营销季,作者采购了网站高可用解决方案,亲身体验,这里将使用过程分享给大家供大家参考。
这里通过采用负载均衡、RDS云数据库、OBS对象存储、CRB云备份、弹性公网IP、Anti-DDos流量清洗等技术服务组合使用的方式来保证我们应用的高可用。下面拆解开来讲讲过程并做一些介绍:
保证业务稳定运行的一项重要措施就是做负载均衡,负载均衡一句话概括就是通过一组而非单个服务器来提供相同的应用服务,这时对该应用服务的请求就会分摊到这些服务器上,同时这些服务器也都可单独使用无需依赖其它服务器。而且负载均衡扩容非常方便,只需要将新的服务器加入到负载均衡监听上即可,让面临类似双11这样非常规化的高并发场景时能够有效应对。
因此,通过这样的负载技术可以减轻单服务器的压力,减少崩溃的概率,解决大并发访问的问题。这也是保证网站高可用的重要手段。
华为云也提供了负载均衡的技术,这里我使用了两台同配置的ECS并设定相同权重来测试一下:
两台服务器的应用部署完成后,将请求主机地址改为负载均衡的弹性公网IP后进行访问,成功拿到了结果:
可以看到资源占用上基本没啥差异,是按照我们设置的权重进行分发的,两台机器都是被有效利用起来了。
去年双11因为用量激增导致我们数据库服务严重吃紧,压力特别大。还出现了交易漏单、脏数据等严重的故障。即便在我们有专门的DBA的情况下,后续修复这些数据以及跟踪漏单原由上也花了非常多的时间。特别是在排查漏单原因时,因为没有精确的数据库操作日志,还是没有找到具体是啥原因导致的漏单,因此只好在代码层面做了更多的一致性处理和预后方案来弥补这个问题。
也因为有了这次的经历,我们深刻的体会到一个能快速自动扩容、具备完备的信息监控能力及稳定可靠的数据库服务是多么的重要!所以我们开始着眼于云数据库产品的选择。在经过一番对比和考虑后选择了华为云的RDS数据库。
RDS for MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就加快了速度,并提高了灵活性。
RDS for MySQL是全球最受欢迎的开源数据库之一,性能卓越,搭配LAMP,成为 WEB 开发的高效解决方案。 云数据库 RDS for MySQL 拥有即开即用、稳定可靠、安全运行、弹性伸缩、轻松管理、经济实用等特点。从2022年6月开始,华为云的RDS还新增了下面这些特性:
支持多安全组、多Proxy功能、多Proxy动态负载,下面分享一下使用过程中觉得比较高效有用的功能点:
华为云RDS的“智能DBA助手”能帮助我们追踪SQL执行信息及慢SQL、锁等待、高压力等告警和提示。
在“智能DBA助手-历史诊断”中,我们可以开启SQL的实时记录功能,开启后,我们每次涉及SQL的操作都会进行记录,可以在列表中看到SQL的执行次数和耗时等信息,还可以根据操作类型筛选要查询的记录:
华为云RDS提供的高级运维提供了非常详细的各类指标监控功能,包括CPU,内存,磁盘利用率以及SQL增删改查语句等70种指标可供查看:
华为云RDS还提供了非常便捷的参数修改功能,不需要我们再像之前那样,改配置还需要在服务器的配置文件中修改:
弹性公网IP(Elastic IP)提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟IP、弹性负载均衡、NAT网关等资源灵活地绑定及解。