您现在的位置是:首页» windows系统» 系统高可用性涉及哪些方面,系统架构的高可用性

系统高可用性涉及哪些方面,系统架构的高可用性

2023-10-20 17:11:38
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!   哈喽大家好,今天咱们来聊聊高可用性(HA)。高可用性就是尽可能地减少系统不能服务的时间。哎呦,如果一个系统能一直正常运行,给大家提供服务,那就是100%可用啦。嘿嘿,其实很多公司都

今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!

  哈喽大家好,今天咱们来聊聊高可用性(HA)。高可用性就是尽可能地减少系统不能服务的时间。哎呦,如果一个系统能一直正常运行,给大家提供服务,那就是100%可用啦。嘿嘿,其实很多公司都不敢说话这么大,所以经常会制定99.9%、99.99%这样的目标。那么,咋样才能保证系统高可用呢?我感觉最重要的一点就是【防止单点故障,加强冗余】。先来看看传统的架构有哪些风险。可以发现,架构的每一个部分都有可能成为单点,这简直是风险多多啊。只要一个环节出了问题,整个系统就有可能崩溃(缓存出问题可能不会直接影响系统,但是一旦缓存失效,数据库可就玩完了)。解决方法还挺简单的,其实就是给系统的每个部分都加上备胎。咋加呢?我来给你说说:客户端到达Web应用:为了增加Web应用的可用性,首先要加上反向代理层,就是负载均衡,比如说Nginx。不过要是只有一台Nginx,又成单点了哟。咱们一般会部署多台,一台提供服务,其他的就相当于备胎。用keepalived工具监控主Nginx是否还活着,要是主挂了,就把虚拟IP切换到备胎上,继续提供服务。负载均衡到Web应用:咱们可以搭建多个Web应用,在负载均衡里配置多个Web地址,还可以监控各个Web应用的可用性。要是发现某个应用挂了,Nginx就不会往这台机器上分发请求了。Web应用到服务层:这里有好多种实现方法哦,比如服务层前端也搞负载均衡,或者用客户端内的负载均衡(Web应用相当于客户端,给服务层配置多个地址,在请求时按规则选一个连接来访问下游服务,用service-connection-pool监控服务层应用的可用性)。还可以用服务注册发现的方式(只有能提供服务的应用才会在注册中心上出现)。服务层到缓存:缓存本身就是一种冗余哟。缓存也可以通过集群来解决高可用问题。以Redis为例,支持主从同步,还有sentinel哨兵机制,可以检测Redis是否还活着。服务层到数据库:一般会用主从架构搞数据库。数据库的高可用性读,我们一般用db-connection-pool来自动故障转移。至于写操作,一般需要用keepalived和虚拟IP自动切换。以上就是保证系统高可用的解决方案了,尽量保证客户端的所有请求都可以得到响应。不过,系统资源是有限的,所以有些方案需要【牺牲】一部分用户:限流:咱们的接口只能支持200个并发,页面只能支持一万人同时访问,多出来的用户,抱歉啊,咱们只能限制你们进入。常见的限流算法有漏桶、令牌桶。降级:为了保证核心功能稳定运行,咱们得放弃一些非核心的业务功能。熔断:当服务链路中的某个服务(A调B,B调C,C调D)响应时间太长或者出错,我们就得降级该节点服务的调用,直接返回错误信息。话说回来,我还真没见过谁敢用熔断这玩意...灰度发布:我们可以把一部分流量导到新上线的应用上,来验证新功能的修改。要是上线后发现有BUG,我们也能迅速回滚,尽量降低出问题的风险。嘿嘿,我会继续分享一些关于Java开发、架构设计、程序员职业发展方面的经验,希望你们能多多关注啊。

wWw.Xtw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com