当前位置: 首页 > 科技观察

资深架构师如何通过6步为企业量身定制高可用系统?

时间:2023-03-19 15:40:02 科技观察

对于拥有大量用户的系统和对系统稳定性要求极高的企业来说,每一次系统意外宕机都是一次严重的事故。要减少系统意外停机的可能性,有两个关键操作。一是进行有计划的维护,及时更新硬件或软件。另一个有效的行动是构建高可用性系统,以减少系统意外停机的可能性。随着企业用户对集群解决方案需求的日益多样化和系统环境复杂度的增加,为了进一步满足企业用户的需求,帆软全新的web集群解决方案显得尤为重要。截止到今天,已经有超过140家帆软客户选择使用web集群方案来提升系统的高可用性。既然上面提到了我们可以满足客户多样化、复杂的需求,那么今天就来给大家介绍一下如何选择集群方案,为企业量身打造适合的高可用系统。什么是集群和分布式?如果你想深入了解一些东西,概念和基础知识非常重要。我会用通俗易懂的语言给你解释。小饭馆原来只有一个厨师,负责切菜、洗菜、备料、炒菜。后来客人多了,厨房里一个厨师忙不过来,又请了一个厨师。两位大厨都会做同样的菜,两位大厨之间的关系堪称一脉相承。为了让主厨专心做菜,把菜做到极致,聘请了一名配菜师傅负责切菜、备菜、配料……主厨与配菜的关系厨师分布。一个配餐师太忙了,又请了一个配餐师。两位餐饮大厨之间的关系是聚类的。一位餐饮厨师因故请假了,但其余的餐饮厨师还是各司其职。只是没有请假的餐饮厨师的任务平均增加了,但他们的任务和职责没有改变。这是一个集群。集群:多人一起做同样的事情分布式:多人一起做不同的事情外部数据库支持多种组件,我们可以针对不同的场景进行选择和搭配。第一步:选择操作系统帆软Web集群解决方案可以同时支持Windows操作系统和Linux操作系统。如果企业还在考虑选择什么样的操作系统,这里推荐您选择Linux操作系统。有两个关键点:性能和稳定性。Linux系统对多线程的处理比Windows好很多,而且不像Windows系统需要图形用户界面,占用资源少,性能更好;Linux系统非常稳定,大部分硬件和配置更新不需要重启;与Windows系统相比,宕机率更低,通常一年都不需要关机;但是影响我们最终系统的因素是最关键的点之一——运维能力。如果公司不具备Linux系统的运维能力,只能选择Windows系统。Step2:选择LoadBalancer作为集群的入口,起到请求分发和节点健康检查的作用。不管是软件负载均衡还是硬件负载均衡,核心功能都是一样的。硬件负载均衡稳定,性能好,但采购维护成本较高。软件负载平衡具有成本效益。常用的Nginx和Traefik都是开源免费的,很多非常大的企业也在使用。可用性得到有效验证。帆软官方验证的软件负载均衡有两种:Treafik和Nginx。Linux系统推荐Nginx作为负载均衡器,Windows系统推荐Treafik。如果想要负载均衡层面的高可用,避免单点故障,可以实现Keepalived+Nginx的方案,保证当一个Nginx服务宕机或异常时,有一个备份的Nginx服务接管。第三步:选择Redis方案在帆软集群方案中,状态服务器是用Redis实现的。常用的Redis解决方案包括Redis单机、Redis集群、Redissentinel。Redis单机方案简单易部署,运维成本低。但是如果想让Redis服务实现高可用,就需要选择Redis集群或者Redis哨兵方案。Redis集群是官方推荐的方案,它不仅可以保证Redis服务的高可用,而且由于数据是分区存储在不同的master节点上,所以大大提高了Redis服务的性能支持。缺点是运维和资源成本高于Redis单机。Redis哨兵模式是通过哨兵节点自动监控Redis主节点的健康状态,并提供故障恢复功能。Redis最常用的哨兵方案是1主2从3哨兵,可以实现更好的高可用。缺点是不能支持高并发,只有master节点可以提供写功能。注意:FineReport和FineBI产品需要安装RedisSentinel插件才能连接RedisSentinel服务。该插件目前还在测试阶段,预计2020年2月正式上线。第四步:选择文件一致性方案集群一致性的关键点是文件一致性。帆软提供了多种解决方案来保证节点间资源文件的一致性。我们可以根据运维能力和实际场景进行选择。节点间同步节点间同步是保证节点间文件一致性的最简单的解决方案。无需开启文件服务器,无需任何配置即可使用。此外,每个节点都存储文件并具有高可用性。但是,节点间同步方案建议只在有两个节点时使用,因为当节点数量增加时,节点间通信和同步的效率会逐渐降低。文件服务器当使用文件服务器时,每个节点都从同一个文件服务器读取资源文件,不涉及节点间的同步,因此每个节点读取的资源文件将始终保持一致。建议在节点数较多的场景下使用文件服务器。常用的文件服务器:FTP、SFTP、HDFS、NAS、NFS。第五步:选择缓存模式。2019年12月更新的jar包增加了缓存方式。我们在开启集群的时候,可以选择主动缓存、被动缓存或者关闭缓存。主动缓存是直接缓存所有资源文件,被动缓存是缓存访问过的资源文件。启用缓存可以提高文件读写性能。并且与文件服务器一起使用时,可以提高集群的高可用性,因为当文件服务器宕机时,系统可以继续从缓存文件中读取资源。第六步:选择外部数据库外部数据库也是集群方案中的一个重点。由于每个节点都使用相同的外部数据库,因此节点之间的配置可以保持一致性。FineReport和FineBI都可以支持常用的数据库,包括MySQL、SqlServer、Oracle、DB2等,如果公司已经有数据库服务,并且数据库版本符合帆软的要求,可以直接使用。如果要保证数据库的高可用,也可以采用主从数据库部署方案。看完以上内容,相信您已经知道如何选择适合自己公司的集群解决方案了。但是值得注意的是,世界上没有100%的高可用方案,但是我们可以通过选择一个完整的高可用方案,加上常规的方式,让系统的高可用尽可能接近100%系统的运维检查和更新。