在企业应用中,通常单个计算机的配置是有限的,而企业应用又是高并发的需求,这个时候会通过计算机集群的方式来提高并发数,从而提高整体应用服务的性能。集群是将多台计算机作为一个整体来提供相关应用的服务。FineBI支持多计算机服务的集群部署,通过集群部署利用有限的计算机资源来有效提高整体应用的并发性能。本文主要介绍整体FineBI集群的思路。
FineBI采用负载均衡集群的模式,将多台服务器创建为一个集群服务器。这里碰到这几个问题:1)web工程的存储问题:FineBI在集群中,由于自身的问题需要多台服务器读取同一个web工程。因此要实现web工程分享。2)系统数据一致性:在FineBI的运行过程中,存在读写的操作,同时有部分的数据的配置文件要写入数据库。需要保证集群的情况下,系统数据的一致性。3)负载均衡:一方面通过负载均衡来处理session的问题,另一方面达成负载均衡的集群环境,使用代理服务器可以将请求转发给集群内部的服务器,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。4)FS平台集群:如FineBI使用FS平台,则FS平台的各种配置也需要进行集群配置。
如下图是一个FineBI进去的架构的案例示意图,这种方式通过NFS文件共享来处理web工程。
Web工程存储问题
Web工程的存储,我们要解决的是多个服务器保证读取同一个web工程。我们可以通过ceph做到多块物理硬盘组件一块逻辑硬盘,从而实现所有节点都是在访问同一地址;也可以通过linux本身带有的nfs共享文件服务来达成访问同一web工程。无论使用哪一种方式,我们要保证:
<!--[if !supportLists]-->1)<!--[endif]-->访问同一web工程
<!--[if !supportLists]-->2)<!--[endif]-->Cube存储地址是一致的
因为同一个web工程下,要求cube的存储地址是一致的,因此要求cube存储地址一定要一样。
而真正使用的时候,ceph的实现需要至少三台计算机来实现,而实际企业应用中,比较少使用三台;而nfs均可以且是linux本身的,因此使用“nfs”方案。
系统数据配置
单节点的情况下,利用缓存和通过操作系统的文件系统来保存数据的方式,在集群模式下不再合适。主要原因在于数据的一致性问题,多个节点可能进行同时读写,更改系统数据,最终势必会造成整体数据不一致。最好的解决方案是系统配置数据全部交给MySQL等关系型数据库来管理。但由于这样工程量好大,更主要的原因为许多代码缺少维护,贸然更改可能带来意想不到的bug。于是我们采用一种折中的做法。在集群中选出一台几点作为主节点,简称M。其余节点担当子节点,简称S。当S上所有与更改系统配置相关的操作,全部发送到M上进行处理。M负责来更改系统状态,维护整个系统到底一致的状态。S节点放弃全部的缓存数据,读取状态的时候,不再通过读取自身数据,而是通过向M发送读取请求,获得M上的数据。M节点自身可以存在缓存数据。其他数据S节点与M节点时等同的,不存在从属关系。
因此按上述原由我们提供如下解决方案:
<!--[if !supportLists]-->1)<!--[endif]-->mysql数据库:原web工程中存在finedb的配置信息转存到mysql数据库中。因为finedb数据库只能有一个连接,无法多节点同时读取,而mysql数据库则不存在。Logdb也需迁移;
<!--[if !supportLists]-->2)<!--[endif]-->主子节点:我们使用主子节点的方式来配置集群,系统数据的更改均在主节点上进行,子节点只读取主节点上的数据;
<!--[if !supportLists]-->3)<!--[endif]-->Zookeeper:为了保证读写情况下,主子节点保证数据一致性,还需要zookeeper进行通信,充当文件锁的功能。
负载均衡
在FineBI的集群环境中,我们可以使用任何支持负载均衡的服务器来完成轮发的任务,并保证session粘滞。此处我们使用的是nginx反向代理,使用IP标识轮发,保证同一个用户在同一个session。(在一个服务器一个节点的情况下,同一个IP就保证session粘滞)。
FS平台集群
使用FS平台集群插件,将FS平台配置能够满足集群需求。在FS平台集群中,FS平台的所有操作都是发到主节点上来操作;子节点只是作计算服务器。
相关推荐
FineBI 是一款纯 B/S 端的商业智能分析服务平台,支持通过 Web 应用服务器将其部署在服务器上,提供企业云服务器。用户端只需要使用一个浏览器即可进行服务平台的访问和使用。软件分为免费试用版和商用版,免费试用...
"基于Linux的集群部署方案" 概述 基于Linux的集群部署方案旨在解决集群管理、可靠性和可用性问题。该方案通过研究Linux启动过程,结合远程启动技术,提出了一个基于Linux的集群部署方案,有效地解决了集群的安装、...
FineBi
Ruby 和 Rubygems 是后续部署 Redis 集群过程中必需的工具之一。如果当前系统有网络连接,可以通过 yum 命令进行安装: ```bash $ yum install ruby $ yum install rubygems ``` 对于离线环境,则需要自行下载 ...
在Linux环境下,部署WebLogic Server 10.3.6的集群是一项复杂而重要的任务,因为这涉及到多个服务器之间的协调工作,以实现高可用性和负载均衡。以下将详细阐述整个部署配置过程的关键步骤: 1. **环境准备**: - ...
linux集群部署文档,技术分享及具体操作步骤,内容比较齐全。
Linux 平台的 SAP 集群设计部署是指在 Linux 操作系统上设计和部署 SAP 集群系统,以提高系统的可靠性和可扩展性。本文主要介绍了 Linux 平台的 SAP 集群设计部署的关键技术要点,包括系统硬件架构设计、系统结构和...
### Oracle WebLogic Server 11g 集群部署On Linux #### 一、环境配置与要求 在进行Oracle WebLogic Server 11g集群部署之前,需要对环境进行一定的规划与配置,确保集群能够正常运行。 **1. 系统环境** - **...
在本文中,我们将深入探讨如何在Linux环境下部署WebSphere Application Server (WAS)集群,以及相关的高可用性(HA)配置。WebSphere Application Server是IBM提供的一款企业级Java应用程序服务器,它支持集群部署以...
redhat linux 部署Kafka集群
在Linux环境下部署WebLogic集群是一项关键的任务,它涉及到服务器的配置、JDK的安装、WebLogic Server的安装以及集群的创建和管理。以下是一份详尽的步骤指南: 首先,确保系统环境满足WebLogic Server的运行需求。...
在实际部署集群之前,需要做好环境的准备工作,包括系统安全性参数的修改、系统环境变量的设置、Java运行环境的安装等。这将为Cognos集群的安装和运行提供一个安全、稳定的环境基础。 8. 集群组件的安装与配置: ...
Linux运维集群部署实战视频老段- Linux运维集群部署-cluster-1(1)
本文将详细介绍如何在Linux上搭建Nginx集群,以及如何进行详细配置,以实现负载均衡功能。 首先,我们需要理解负载均衡的基本概念。负载均衡是一种技术,通过分散网络流量到多个服务器,防止单点故障,提高服务的...
### Linux下WAS集群部署详解 #### 一、概述 在银行环境中部署产品时,往往会遇到复杂的中间件集群配置需求,而市面上缺乏针对特定场景的详细文档指导。本篇文章旨在填补这一空白,通过具体实践案例——Linux环境下...
### Linux Redis 集群部署详解 #### 一、概述介绍 Redis自3.0版本开始支持集群功能,这一特性极大地扩展了Redis的应用场景,并提高了其在大规模分布式系统中的可用性和扩展性。以下是对Redis集群的一些核心特性的...
linux达梦集群部署
PGCluster是一种提供写可靠性,多主节点数据同步,数据传输的开源集群方案,这些PGCluster组件可以分别安装在多台物理机器或者虚拟机上。
在linux系统上部署集群,apache,nginx,mysql,keepalived