O2OA是一款全开源的企业信息化开发平台,作为OA系统开发平台,O2OA着力于帮助企业降低信息化系统开发成本,帮助企业提升信息化能力。本系列主要以实战形式向大家介绍使用开源OA平台搭建一套协同办公系统的实际操作过程,让大家更好地了解O2OA平台的基本能力。

我们之前演示的都是在单服务器环境下,下面我们来配置集群环境.

集群的主要目的是实现负载均衡,失效转移

服务器配置建议: 4C8G/每1000活跃用户.

如果集团有2000活跃用户,那么建议使用两台机器.以此类推.

下面我们演示双机集群部署.

服务器准备

我们搭建两个服务器

trains1.o2oa.net

trains2.o2oa.net

数据库我们就使用在前一个章节配置的mysql数据库

这样我们的集群架构就是这个样子

这个是一个集群环境,有两个节点,每个节点都分别启动了 web center,application三个服务器,共用一台数据库,这两个节点就构成了可以实现负载均衡的集群环境。

课前已经准备好了两台服务器,安装的是centos7的系统.由于我们O2OA服务器已经包含所有的依赖运行库,我们在centos上不需要安装其他软件.直接将o2oa服务器程序拷贝上去,解压就可以运行了.

配置服务器trains1.o2oa.net

进入到o2oa官网(https://o2oa.net) -> 平台下载

下载我们操作系统对应的介质,我们这里使用的是intel芯片,那么选择linux-x64的介质.

如果是龙芯,鲲鹏这样的国产主机,使用的是arm芯片,那么选择下载linux-arm.

如果是飞腾的主机,使用的是mips芯片,那么选择下载linux-mips.

下面我们直接登陆到服务器上进行下载.

之前在服务器上我们已经设置好了host文件,可以用域名访问服务器地址

172.16.91.120    traindb.o2oa.net
172.16.91.121    trains1.o2oa.net
172.16.91.122    trains2.o2oa.net

服务器程序是通过识别在config目录下的node_xxx.json文件来判断集群成员的,有node_trains1.o2oa.net.json和node_trains2.o2oa.net.json那么服务器程序就会识别到集群有两个成员.

当前服务器是哪个成员是通过在o2server目录 local/node.cfg进行识别的.

等一会儿我们需要用文本编辑器将内容改为trains1.o2oa.net 这样程序就能从node.cfg的内容'trains1.o2oa.net' 关联到节点配置文件 node_trains1.o2oa.net.json.

下载地址:http://mirror1.o2oa.net/download/o2server-6.4.4-linux-x64.zip

现在我们登陆到第一台服务器上:trains1.o2oa.net

#进入opt目录
cd /opt
#下载介质
wget http://mirror1.o2oa.net/download/o2server-6.4.4-linux-x64.zip
#解压介质到o2server目录
unzip o2server-6.4.1-linux-x64.zip
#进入目录
cd o2server
#创建config目录,服务器启动时也会自动创建,这里创建是为了直接拷贝配置文件
mkdir config
#复制node_127.0.0.1.json文件作为trains1节点的配置文件
cp configSample/node_127.0.0.1.json config/node_trains1.o2oa.net.json
#复制node_127.0.0.1.json文件作为trains2节点的配置文件
cp configSample/node_127.0.0.1.json config/node_trains2.o2oa.net.json
#创建local目录,服务器启动时也会自动创建,这里创建是为了直接拷贝配置文件
mkdir local
#拷贝node.cfg 作为本节点的节点名称标识文件.
cp localSample/node.cfg local/node.cfg
cd /opt
wget http://mirror1.o2oa.net/download/o2server-6.4.4-linux-x64.zip
unzip o2server-6.4.1-linux-x64.zip
cd o2server
mkdir config
cp configSample/node_127.0.0.1.json config/node_trains1.o2oa.net.json
cp configSample/node_127.0.0.1.json config/node_trains2.o2oa.net.json
mkdir local
cp localSample/node.cfg local/node.cfg

configSample目录存放的都是配置文件样例,本身并不生效,config下的配置文件才是生效的配置文件,在config目录下没有的配置将使用系统默认配置.

复制完成后我们通过sftp工具上传前个章节创建的数据库配置文件到trains1.o2oa.net服务器上

  1. 将文件 externalDataSources.json (上节课已经介绍过)上传到trains1.o2oa.net 服务器的/opt/o2server/config目录下.

  2. 修改 local/node.cfg的内容为trains1.o2oa.net

  1. config/node_trains1.o2oa.net.json全部采用默认配置,不做修改.

  2. config/node_trains2.o2oa.net.json修改center节点的排序号为1.

  1. config/node_trains2.o2oa.net.json修改storage节点的name为252.

默认值

修改值

说明

center.order

0.0

1.0

center 节点顺序,服务器会按指定的顺序选举中心节点,用于同步所有服务器之间的任务调度.

storage.name

251

252

存储服务器的节点名称,需要在所有集群服务器间保持唯一.trains1.o2oa.net服务器默认是251,将trains2.o2oa.net的存储节点名称改为252.

到这里我们就完成了trains1.o2oa.net服务器的配置.

配置服务器trains2.o2oa.net

现在我们来配置第二台服务器

登陆到服务器上

  1. 下载介质.

  2. 创建默认配置文件.

  1. 修改配置.

#进入opt目录
cd /opt
#下载介质
wget http://mirror1.o2oa.net/download/o2server-6.4.1-linux-x64.zip
#解压介质到o2server目录
unzip o2server-6.4.1-linux-x64.zip
#进入目录
cd o2server
#创建config目录,服务器启动时也会自动创建,这里创建是为了直接拷贝配置文件
mkdir config
#复制node_127.0.0.1.json文件作为trains1节点的配置文件
cp configSample/node_127.0.0.1.json config/node_trains1.o2oa.net.json
#复制node_127.0.0.1.json文件作为trains2节点的配置文件
cp configSample/node_127.0.0.1.json config/node_trains2.o2oa.net.json
#创建local目录,服务器启动时也会自动创建,这里创建是为了直接拷贝配置文件
mkdir local
#拷贝node.cfg 作为本节点的节点名称表示文件.
cp localSample/node.cfg local/node.cfg
cd /opt
wget http://mirror1.o2oa.net/download/o2server-6.4.1-linux-x64.zip
unzip o2server-6.4.1-linux-x64.zip
cd o2server
mkdir config
cp configSample/node_127.0.0.1.json config/node_trains1.o2oa.net.json
cp configSample/node_127.0.0.1.json config/node_trains2.o2oa.net.json
mkdir local
cp localSample/node.cfg local/node.cfg

复制完成后

和trains1.o2oa.net 操作一样,将externalDataSources.json 复制到trains2.o2oa.net服务器上,再修改配置文件

  1. 将文件 externalDataSources.json 上传到trains2.o2oa.net 服务器的/opt/o2server/config目录下.

  2. 修改 local/node.cfg的内容为trains2.o2oa.net

  1. config/node_trains1.o2oa.net.json全部采用默认配置,不做修改.

  2. config/node_trains2.o2oa.net.json修改center节点的排序号为1.

  1. config/node_trains2.o2oa.net.json修改storage节点的name为252.

至此服务器集群就配置完成了.

检查配置文件

我们再次检查配置文件是否符合要求.

验证集群部署

进入trains1.o2oa.net服务器/opt/o2server目录执行 ./start_linux.sh 启动trains1.o2oa.net 服务器.

cd /opt/o2server
./start_linux.sh

进入trains2.o2oa.net服务器/opt/o2server目录执行 ./start_linux.sh 启动trains2.o2oa.net 服务器.

cd /opt/o2server
./start_linux.sh

验证trains1.o2oa.net服务器是否在集群中
访问地址 http://trains1.o2oa.net/x_desktop/index.html
使用xadmin管理员登陆
然后访问地址 http://trains1.o2oa.net:20030/x_program_center/jest/list.html
我们可以看到模块列表已经连接上两台服务器
在服务器控制台上输入 ctl -sc 能看到同样的输出内容

我们在前面的步骤中已经采用了域名来访问,集群之间是通过x-token令牌来传递身份的,在客户端默认是采用cookie来传递x-token,服务器默认采用根域名作为cookie的domain,这里直接完成了两台服务器之前的登陆互通,无需二次登陆.

验证trains2.o2oa.net服务器是否在集群中
访问地址 http://trains2.o2oa.net/x_program_center/jest/list.html
我们可以看到模块列表已经连接上两台服务器
在服务器控制台上输入 ctl -sc 能看到同样的输出内容

开源OA:手把手教你搭建OA办公系统(19)-系统上线之服务器集群设置相关推荐

  1. 手把手教你搭建OA服务器

    手把手教你搭建OA服务器 AnyOffice.Net 3.3 安装与配置说明 AnyOffice.Net在平台准备充分的情况下可以通过一次点击安装.配置IIS站点就能完成.所以在安装AnyOffice ...

  2. 开源!手把手教你搭建Arduino+英伟达Jetson的ROS小车(上)

    1 引言 今年6月,我们应小伙伴儿的需求,写了两篇如何通过购买零件从零搭建一台ROS实体车的推文<开源!手把手教你搭建Arduino+树莓派的ROS小车(上)>.<开源!手把手教你搭 ...

  3. 开源OA:手把手教你搭建OA办公系统(1)服务器安装和数据初始化

    如何下载O2OA办公系统的开源代码? O2OA办公平台以及其所有源码,都是可以免费获取的,主要有以下两种方式: 1.从O2OA办公系统官网下载可运行版本. 2.下载源码,自行编译可运行版本.(后面的课 ...

  4. 个人博客代码_Solo小众开源博客系统:手把手教你搭建自己的博客系统

    博客是很多程序员朋友的最爱,通过博客可以梳理自己的技术体系,将自己日常开发过程中的技术心得或者对于一个技术问题的解决思路记录下来,对于以后碰到此类问题有一个参考的作用.同时,博客系统的内容是对外的,我 ...

  5. 开源OA:手把手教你搭建OA办公系统(17)实现系统间单点登陆认证

    O2OA是一款全开源的企业信息化开发平台,作为OA系统开发平台,O2OA着力于帮助企业降低信息化系统开发成本,帮助企业提升信息化能力.本系列主要以实战形式向大家介绍使用开源OA平台搭建一套协同办公系统 ...

  6. 开源OA:手把手教你搭建OA办公系统(3)开发企业报销审批流程

    需求 今天以OA系统中的报销审批流程为例来讲一下流程应用管理.首先介绍一下报销流程的需求,主要分为两部分,流程和表单. 流程 OA的报销流程部分,我们将其分成两种情况:报销金额<=3000元时, ...

  7. 开源OA:手把手教你搭建OA办公系统(12)O2OA与第三方系统的数据交互实现

    OA系统中服务管理的介绍 O2OA办公开发平台提供的服务管理可以让用户使用Javascript语言自由编写脚本,来实现与第三方系统的数据交互.数据同步.以及系统内的数据处理等工作,也可以编写OA系统内 ...

  8. 开源OA:手把手教你搭建OA办公系统(9)快速搭建企业门户

    OA系统门户介绍 一个门户OA办公系统的门面,把这个门面做的既实用又漂亮很重要.而今天要介绍的功能--门户管理,是OA办公系统管理是O2OA五大平台之一,主要用于设计各类页面,比如系统首页.列表页面. ...

  9. 开源OA:手把手教你搭建OA办公系统(13)将O2OA集成到钉钉

    钉钉集成 在前面移动办公的课程中,我们已经介绍了: O2OA移动APP的功能和能力,但是现在用户说,我们一直都是在使用钉钉进行移动办公,不想再安装其他新的APP了.能不能在钉钉中使用O2OA进行办公呢 ...

最新文章

  1. 2018-2019-1 20165318 20165322 20165326 实验四 外设驱动程序设计
  2. python第六周实验_机器学习 | 吴恩达机器学习第六周编程作业(Python版)
  3. 让用VS2012/VS2013编写的程序在XP中顺利运行
  4. linux 信号处理
  5. 一个很简短的 JS 生成器入门和用法参考
  6. centeros7 mysql,center os 7 Mysql 安装
  7. php的exportexcel,PHPExcel export网络或本地图片到excel
  8. Android 检测是否连接蓝牙耳机
  9. Bash脚本教程之set命令
  10. 在linux中安装oracle中文包,在Linux命令行下安装Oracle 10g
  11. dw如何写php代码提示,DW CS5 jquery代码提示插件
  12. javascript map 排序_1Keys仅用1 kb的JavaScript制作钢琴
  13. java NIO 复习
  14. 【鱼眼镜头1】鱼眼镜头的四种投影模型(指导镜头的设计),中央镜头综述
  15. 拓端tecdat|R语言指数加权模型EWMA预测股市多变量波动率时间序列
  16. word转换成pdf转换器2015绿色版
  17. linux 静态路由会优先直连路由,操作系统里静态路由和直连路由的优先级-转
  18. 计算机管理事件id10016,【已解决】如何解决事件ID:10016错误
  19. 美年旅游_自由行_自由行分页PageHelper
  20. 找出阿里云RDS数据库的IP地址

热门文章

  1. PMP知识点总结—X-Y理论、马斯洛需求层次论
  2. ACM教程 - 强连通分量(Tarjan)
  3. dlopen linux 实例_在Linux中在libc和libdl中执行dlopen
  4. oracle怎样关联,ORACLE关联
  5. jupyter notebook 快捷键汇总
  6. 手把手Android Studio全套安装+配置+真机部署教程【多图超详细】
  7. 用java写一个斗地主
  8. shell脚本批量telnet端口不通长时间不断开问题解决
  9. 判断用户输入的是不是一个手机号码
  10. arcgis用python字段自动编号,arcgis中字段自动编号的两种方法