在企业应用中,通常单个计算机的配置是有限的,而企业应用又是高并发的需求,这个时候会通过计算机集群的方式来提高并发数,从而提高整体应用服务的性能。集群是将多台计算机作为一个整体来提供相关应用的服务。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工程。无论使用哪一种方式,我们要保证:

1)访问同一web工程

2)Cube存储地址是一致的

因为同一个web工程下,要求cube的存储地址是一致的,因此要求cube存储地址一定要一样。

而真正使用的时候,ceph的实现需要至少三台计算机来实现,而实际企业应用中,比较少使用三台;而nfs均可以且是linux本身的,因此使用“nfs”方案。

系统数据配置

单节点的情况下,利用缓存和通过操作系统的文件系统来保存数据的方式,在集群模式下不再合适。主要原因在于数据的一致性问题,多个节点可能进行同时读写,更改系统数据,最终势必会造成整体数据不一致。最好的解决方案是系统配置数据全部交给MySQL等关系型数据库来管理。但由于这样工程量好大,更主要的原因为许多代码缺少维护,贸然更改可能带来意想不到的bug。于是我们采用一种折中的做法。在集群中选出一台几点作为主节点,简称M。其余节点担当子节点,简称S。当S上所有与更改系统配置相关的操作,全部发送到M上进行处理。M负责来更改系统状态,维护整个系统到底一致的状态。S节点放弃全部的缓存数据,读取状态的时候,不再通过读取自身数据,而是通过向M发送读取请求,获得M上的数据。M节点自身可以存在缓存数据。其他数据S节点与M节点时等同的,不存在从属关系。

因此按上述原由我们提供如下解决方案:

1)mysql数据库:原web工程中存在finedb的配置信息转存到mysql数据库中。因为finedb数据库只能有一个连接,无法多节点同时读取,而mysql数据库则不存在。Logdb也需迁移;

2)主子节点:我们使用主子节点的方式来配置集群,系统数据的更改均在主节点上进行,子节点只读取主节点上的数据;

3)Zookeeper:为了保证读写情况下,主子节点保证数据一致性,还需要zookeeper进行通信,充当文件锁的功能。

负载均衡

在FineBI的集群环境中,我们可以使用任何支持负载均衡的服务器来完成轮发的任务,并保证session粘滞。此处我们使用的是nginx反向代理,使用IP标识轮发,保证同一个用户在同一个session。(在一个服务器一个节点的情况下,同一个IP就保证session粘滞)。

FS平台集群

使用FS平台集群插件,将FS平台配置能够满足集群需求。在FS平台集群中,FS平台的所有操作都是发到主节点上来操作;子节点只是作计算服务器。

转载于:https://blog.51cto.com/10549520/1908356

Linux之FineBI集群部署 1相关推荐

  1. Linux之FineBI集群部署

    在企业应用中,通常单个计算机的配置是有限的,而企业应用又是高并发的需求,这个时候会通过计算机集群的方式来提高并发数,从而提高整体应用服务的性能.集群是将多台计算机作为一个整体来提供相关应用的服务.Fi ...

  2. linux故障转移集群,部署AlwaysOn第一步:搭建Windows服务器故障转移集群

    在Windows Server 2012 R2 DataCenter 环境中搭建集群之前,首先要对Windows服务器故障转移集群(Windows Server Failover Cluster,简称 ...

  3. Elasticsearch——Windows下ES集群部署 Linux下ES单节点、集群部署

    1.开篇 在之前的两篇文章中,说白了就是在windows下部署的ES单节点的环境. 这篇文章主要是说一下windows下部署ES集群.Linux下单节点部署. 单台 Elasticsearch 服务器 ...

  4. Linux集群部署和ipvsadm命令的使用

    在日常的使用中,一台服务器足够胜任很多的工作,但是当很多人同时访问的时候就会显得稍有些无力,这个时候.可以有两种解决的方法,第一种是不断的改善这台服务器的性能,但是总是会有一个上限存在,而且提升的效果 ...

  5. ElasticSearch集群部署【windows+Linux双系统搭建】

    ES集群部署 一.windows部署 二.Linux单节点部署 三.Linux集群部署 一.windows部署 如果已经使用过,删除其中的data和logs文件夹中的内容 新建一个es-cluster ...

  6. Linux下搭建 kafka集群 + zookeeper集群部署 安装、启动、停止

    文章目录 一.环境部署总览 1. 软件版本选型 2. 服务器软件部署总览 二.软件部署手册 2.1. JDK 2.2. kafka 2.3. Kafka Eagle 2.4. mysql 2.5. z ...

  7. Elasticsearch在Linux中的单节点部署和集群部署

    目录 一.Elasticsearch简介 二.Linux单节点部署 1.软件下载解压 2.创建用户 3.修改配置文件 4.切换到刚刚创建的用户启动软件 5.测试 三.Linux集群配置 1.拷贝文件 ...

  8. 达梦8数据库dm8集群部署之DW集群Linux(主备自切)

    安装前准备 集群规划 A机器 B机器 业务IP 10.16.216.80(217没有配置暂时使用216网段) 10.16.216.81 心跳IP 10.16.217.10 10.16.217.11 实 ...

  9. 集群-大规模Linux集群部署-MPI集群搭建与MPI编程

    一.集群的概念及其相关技术 集群计算机是指利用高速通信网络将一组高档工作站或PC按某种结构连接起来,在并行程序设计甚至可视化人机交互集成开发环境支持下,统一调度,协调处理,实现高效并行处理的系统,利用 ...

最新文章

  1. 多个相机拍摄定位_两种方式拍照易泄露隐私 | 如何避免照片记录 iPhone 定位信息?...
  2. 在CNN上增加一层CAM告诉你CNN到底关注什么
  3. 阿里云mysql写入性能_插入mysql类型
  4. 23种设计模式之观察者模式
  5. 善良公社项目总结之如何从前台向后台传输数据
  6. 的一致性哈希_五分钟看懂一致性哈希算法
  7. 网站二次开发如何防止别人打包源码_企业网站制作前需注意的几个事项
  8. 在字符串中标红_在C ++中标记字符串
  9. vue+webpack绕过QQ音乐接口对host的验证
  10. 前端jquery学习
  11. 运筹优化(五)--线性规划之内点法
  12. Java 聊天室实现
  13. 软件工程 第五章:交互图
  14. Deecamp考试给我的启发
  15. java 上传附件_java 上传附件实现方法
  16. 32位服务器系统安装教程,服务器系统数据库安装教程
  17. Java使用阿里云视频点播
  18. 经典算法之,细化时间颗粒度24*7细化为48*7颗粒度
  19. tensorflow入门教程(三十五)facenet源码分析之MTCNN--人脸检测及关键点检测
  20. carsim中质心加速度_CarSim仿真快速入门(七)—车辆参数化建模

热门文章

  1. 苹果通过电商渠道降价20天后,iPhone在中国销量猛增八成
  2. Python开源项目大集合:15个领域,181个项目 | 硬核干货
  3. mysql数据库优化总结 有图 有用
  4. 解决 npm 无法安装 devDependencies 下的依赖包的问题
  5. 【愚人节快乐】拥抱Bootstrap,FineUI新版效果超炫!
  6. Under the Hoods of Cache Fusion, GES, GRD and GCS
  7. 谈谈struts2的工作原理
  8. 生成网上下载的EF项目对应的数据库
  9. js 中时间格式化的几种方法
  10. spring-boot-starter家族成员简介