对于用户量较大的系统以及系统稳定性要求极高的企业,每一次计划外的系统停机都是严重事故。想要降低计划外系统停机的概率,有两个关键动作,一是执行计划内维护来及时更新硬件或者软件,另外一个有效的动作就是搭建一套高可用系统来降低系统意外停机的概率。

帆软在FineReport8.0和FineReport9.0版本就已提供有集群方案,随着企业用户对集群方案需求的多样性提升、系统环境的复杂度增加,为了进一步满足企业用户的需求,帆软在2018年10月基于FineReport10.0和FineBI5.0推出全新web集群方案。截止今天已经有140余家帆软客户选择使用web集群方案来提升系统的高可用性。

既然上面提到我们可以满足客户多样性、复杂性的需求,今天就给大家介绍一下如何选择集群方案,来量身打造一套适合企业的高可用性系统。

ps:本文基于2019.12月发布的FineReport jar包进行讲解。

正式介绍之前,先说一点基础知识,帆软的web集群架构:负载均衡+状态服务器+文件服务器/节点间同步+外置数据库(如果还没了解过帆软的集群方案,可以先看一下集群方案介绍),支持的组件多样化,可以针对不同场景进行选择和搭配。

第一步:选择操作系统

帆软web集群方案对Windows操作系统、Linux操作系统均能支持,如果企业还在考虑选择什么样的操作系统,这里推荐大家选择Linux操作系统,有两个关键:性能和稳定性。

  • Linux系统处理多线程比Windows要好的多,而且不像Windows系统必备图形化操作界面,因此占用资源会少一些,性能也更好;

  • Linux系统稳定性极佳,大部分硬件和配置更新无需重启;相对Windows系统,宕机机率更低,常常一年都不用关机;

但是影响我们最终哪种系统的因素,还有一个最关键的点——运维能力,如果公司不具备Linux系统的运维能力,只能选择Windows系统了。

第二步:选择负载均衡

负载均衡作为集群的入口,起到请求分发和节点健康检查的作用。不管是软件负载均衡,还是硬件负载均衡,核心作用都是一样的。硬件负载均衡稳定,性能也较好,但是采购和维护成本都比较高。软件负载均衡性价比高,像我们常用的Nginx、Traefik都是开源免费的,许多超大型的企业也在使用,可用性得到过有效的验证。

帆软官方验证过的软件负载均衡有两种:Traefik和Nginx,Linux系统推荐选用Nginx作为负载均衡,Windows系统推荐选用Traefik。如果希望负载均衡层面也具备高可用性,避免单点故障,可以再做一个Keepalived+Nginx方案,确保一个Nginx服务宕机或异常后,有备用的Nginx服务可以接手。

第三步:选择Redis方案

帆软集群方案里,状态服务器是用Redis实现的,常用的Redis方案有Redis单机、Redis集群、Redis哨兵三种。Redis单机方案简单易部署,运维成本低。但是如果希望Redis服务也达到高可用性,就需要选择Redis集群或者Redis哨兵方案了。

Redis集群是官方推荐方案,既能够保证Redis服务的高可用性,又因为数据是分区存储在不同的主节点上,可以大幅度提升Redis服务的性能支撑。不足之处就是运维和资源成本相对Redis单机要高一些。

Redis哨兵模式是通过哨兵节点来实现自动化监控Redis主节点健康状态,并提供故障恢复功能。最常用的Redis哨兵方案为1主2从3哨兵,能够做到较好的高可用。缺点是不能支持高并发,能提供写入功能的也就只有主节点。

注:FineReport和FineBI产品需要安装Redis哨兵插件来对接Redis哨兵服务,插件还在测试阶段,预计2020年2月份正式上线。

第四步:选择文件一致性方案

集群一致性里很关键的点就是文件一致性,帆软提供了多种方案来保障节点间资源文件的一致性。我们可以基于运维能力,实际场景来进行选择。

  • 节点间同步

节点间同步是保障节点间文件一致性的最简方案。无须开启文件服务器,无须做任何配置即可使用。而且各节点均存储文件,具备高可用性。不过节点间同步方案建议仅在两节点时选用,因为当节点增多时,节点间通信和同步效率会逐渐变低。

  • 文件服务器

当使用文件服务器时,各个节点都从同一个文件服务器读取资源文件,不涉及到节点间同步,因此各个节点读取的资源文件永远会保持一致性,节点数较多的场景下建议使用文件服务器。常用的几种文件服务器:FTP、SFTP、HDFS、NAS、NFS。

第五步:选择缓存模式

2019年12月更新的jar包里增加了缓存模式,当我们开启集群时,可以选择主动缓存、被动缓存、关闭缓存。主动缓存就是直接缓存所有资源文件,被动缓存是对访问到的资源文件进行缓存,开启缓存可以提高文件读写的性能。而且配合文件服务器使用时,可以提升集群的高可用性,因为当文件服务器宕机时,系统可以继续从缓存文件中读取资源。

第六步:选择外置数据库

外置数据库在集群方案里也是很关键的点,由于各个节点均使用同一个外置数据库,因此节点间的配置可以保持一致性。FineReport和FineBI对常用的数据库都可以支持,包括MySQL、SqlServer、Oracle、DB2等。若公司已有数据库服务,数据库版本符合帆软的要求则可直接使用,如果想要保证数据库的高可用性,还可以采用主从的数据库部署方案。

读完上面的内容,相信你已经知道了如何选择一套符合自己企业的集群方案了。不过值得说明的是,世上没有100%高可用的方案,但我们可以通过选用完备的高可用方案,加上对系统定期运维检查和更新,让系统的高可用性尽可能地接近100%。

欢迎关注我的公众号“商业智能研究”,私信回复“资料包”,即可领取大数据、数据中台、商业智能、数据仓库等6G精华资料

如何为企业量身打造一套高可用系统?相关推荐

  1. 第十八:如何定制Pytest+Allure2详细报告生成,给项目量身打造一套测试报告(重点超详细)

    简介 1.俗话说"人靠衣服马靠鞍"一个项目做的在好,没有一分的漂亮的测试报告有时候也是很难在客户那边验收的,今天就带你们解决这一难题. 2.前边一篇文章是分享如何搭建pytest+ ...

  2. 在“互联网+”时代下,专为餐饮行业量身打造的智能管理系统!

    传统的餐厅经营,日常运营中存在人力资本.物料损耗.设施设备.广告宣传推广等资金的投入.特别是在设施设备,前期需要投入大量资金,且后期还需进行维护,费用不小.传统的餐饮管理模式,除了在各种服务上存在体验 ...

  3. 小别墅样式_6款三层小别墅样式,各风格特色图纸为农村自建量身打造

    原标题:6款三层小别墅样式,各风格特色图纸为农村自建量身打造 从最新农村建房面积规定可以看出,今后农村自建房小别墅是主流,而三层小别墅样式则是为农村家庭量身打造的别墅样式,在满足住房需求的同时,做到经 ...

  4. 以外卖餐饮大数据为例 量身打造数据化运营体系

    数据分析入门与实战  公众号: weic2c 作者简介:Kener-林峰,北邮计算机,国家重点实验室交换与智能控制研究中心,前百度资深研发工程师,凤巢业务系统前端技术leader,数据可视化领域,EC ...

  5. 【SunRTC】一款为保险应用场景量身打造的实时音视频产品

    重磅!!![SunRTC]一款为保险应用场景量身打造的实时音视频产品开源啦! 简介 一.产品介绍 (一)产品应用场景 (二)产品主要功能 (三)产品价值 二.技术实现 (一)视频.即时消息功能 (二) ...

  6. 【无武汉公司团建小姐姐量身打造这几个路线挺适合够给力吧?

    临时起意组里要组织出游活动,上面下达的计划要做滴水不漏,等着找位置,一定要弄得出类拔萃才能印象深刻,有没有创新的好景点呢?武汉公司团建小姐姐量身打造这几个路线挺适合够给力吧? 这么好玩的地方还是不容错 ...

  7. 【​观察】从量身打造“超级用户计划”,看爱奇艺iQUT的态度、温度和高度

    申耀的科技观察 读懂科技,赢取未来! 爱奇艺智能CEO熊文最近有点忙. 继今年5月正式发布爱奇艺iQUT战略,宣布推出奇遇VR一体机之后,7月又对外发布了"超级用户计划".毫无疑问 ...

  8. 推荐 | 为科研人量身打造的公众号,都在这里啦

    注重效率的科研人,需要的是有质量的公众号.下面这几个公众号,不论是资深学者还是青年研究生都会关注.其中不仅包含前沿学术资讯.深度趋势解读,还有针对不同学科/专业量身打造的精品内容. 轻扫二维码关注,你 ...

  9. 狂神说 es笔记_【开源推荐】专门为程序员朋友量身打造的笔记软件—— Boostnote...

    前言 很多人好奇程序猿是如何记笔记的,如果有了解过可能会知道Markdown.都知道Markdown 是一个轻量级的标记语言,语法简单.容易上手,它深受程序员.博客主等人群的钟爱.随着越来越多的博客系 ...

最新文章

  1. 完美解决“惠普p1007打印机老显示脱机使用”的问题
  2. bootstrap轮播图怎么居中
  3. 使用C#实现适配器模式 (Adapter Pattern) 和外观模式 (Facade Pattern)
  4. 初一模拟赛总结(2019.5.25)
  5. 智能驾驶板块_智能驾驶股票有哪些?智能驾驶股票一览
  6. 前端学习(219):css伪类选择器
  7. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 18丨即时食物配送 I【难度简单】​
  8. 使用Maven插件对项目进行打包
  9. 一条长为L的绳子,一面靠墙,另外三边组成矩形,问此矩形最大面积能是多少?...
  10. 有1到100共100个数, 从1开始, 每隔1, 2, 3... 个数拿走一个数, 最后剩下几?(约瑟夫环)...
  11. PostgreSQL参数学习:random_page_cost
  12. html输入能自动计算器,HTML自制计算器
  13. 十大机器学习算法(一)
  14. 超分 Super-Resolution
  15. Tupper自我指涉公式:图象里竟然包含式子本身
  16. 数字孪生助力智慧城市智能化发展
  17. 2013中国旅游网站100强排行榜
  18. 如何更改SpringBoot控制台图标?只需一步!
  19. OCR应用:名片识别
  20. 有什么PDF阅读器?告诉你三个好用的PDF阅读软件

热门文章

  1. 数据字典在sga的哪一个组件中缓存_非功能性约束之性能(1)-性能银弹:缓存...
  2. golang 切片 接口_如何理解Golang中的接口?
  3. linux中有fd set函数吗,LINUX下FD_SET介绍
  4. cdn需要备案吗_cdn需要备案么
  5. elasticsearch基本查询三(英文分词)match查询
  6. php限制ip访问次数 并发_PHP实现redis限制单ip、单用户的访问次数功能示例
  7. 作者:丁伟(1972-),男,博士,中国联合网络通信有限公司网络技术研究院高级工程师。...
  8. 【数字逻辑设计】毛刺
  9. 【数据结构与算法】二叉堆V2.0的Java实现
  10. 域名解析中“TTL”是什么意思?