You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

介绍

概观

本文旨在描述在集群环境中部署Joget Workflow Large Enterprise Edition(LEE)以实现可伸缩性和冗余性所需的步骤。

要求

为了使群集起作用,需要大型企业版。由于许可限制,标准企业版将不起作用。集群需要准备和配置几个层:

  • 负载平衡器
  • 应用服务器
  • 共享文件目录
  • 共享数据库

架构

设计集群架构的方法有很多,但核心概念是相似的。在本文档中,使用的架构如下所示:

部署和配置指南

本指南介绍了安装Joget Workflow LEE集群所需的步骤。确切的步骤将取决于每层中使用的实际产品。

 

重要提示:请注意,Joget Workflow LEE本身需要很少的配置,几乎所有的工作都是在单独的层上完成的,因此确保您在所选产品中拥有足够的专业知识至关重要。


预部署要求

在可以完成集群安装之前,需要以下先决条件:

共享文件目录

公用目录由具有读/写权限的应用程序服务器访问。该目录用于存储共享配置文件,系统生成的文件和上传的文件。验证共享目录是否安装在应用程序服务器上,并且可以通过读取和写入权限访问文件。

共享数据库

公用数据库由具有选择,更新,删除,创建和更改表的权限的应用程序服务器访问。验证应用程序服务器是否可以连接和查询共享数据库。

应用服务器

Java Web应用程序服务器将在群集中的每个服务器上安装并运行。验证每个应用程序服务器是否已正确安装,并且可以通过Web浏览器进行访问。

会话复制

会话复制要在应用程序服务器和网络上配置。验证是否为每个应用程序服务器和网络配置了会话复制。

负载平衡器

要安装和配置负载平衡器(硬件或软件),以便将以/ jw开头的请求的流量导向应用程序服务器。验证是否已正确安装并配置了负载平衡器,以便将Web流量导向到各个应用程序服务器。


 

Joget工作流集群配置

确保预部署要求已得到验证,这一点非常重要。一旦通过验证,Joget Workflow的具体步骤如下:

数据源配置

在共享目录中配置数据源属性文件

  1. 将文件app_datasource.propertiesapp_datasource-default.properties从标准Joget安装的wflow目录复制到共享文件目录中。
  2. 编辑app_datasource-default.properties并设置共享数据库(例如MySQL)的数据库连接设置,更改下面的粗体值:

 

workflowDriver=com.mysql.jdbc.DriverworkflowUrl=jdbc\:mysql\://host\:port/database_name?characterEncoding\=UTF-8 
workflowUser=username 
profileName= 
workflowPassword=password

应用程序部署和配置

将Joget WAR文件部署到应用程序服务器,并将启动属性配置为指向共享目录。

  1. 将WAR文件jw.warjwdesigner.war从LEE包中部署到每个应用服务器,例如Apache Tomcat,将这些文件复制到tomcat webapps目录
  2. 在应用程序服务器启动中添加Java -wflow.home = shared_directory_path选项,例如,对于Apache Tomcat,请修改JAVA_OPTS行

 

export JAVA_OPTS =“ - XX:MaxPermSize = 128m -Xmx1024M -Dwflow.home = / shared_directory_path”


许可证激活

激活每个服务器的许可证。每台服务器都有一个唯一的系统密钥,需要单独的许可证激活。

  1. 对于每个应用程序服务器,使用浏览器直接访问Joget Web控制台,绕过负载平衡器,例如{+} http:// server1:8080 / jw / web / console / home +
  2. 请求许可证并使用的Web控制台页脚中的链接激活它。

部署后测试

一旦完成了预部署和集群配置,测试就是使用的Web浏览器访问负载平衡器。

 

示例安装和配置

 

本示例介绍使用以下产品进行的安装:

Joget工作流程

Joget Workflow v5 LEE

负载平衡器

Apache HTTP Web服务器2.4与在Ubuntu 14.04上运行的mod_proxy和mod_balancer(代理和负载平衡模块)

应用服务器

运行在Ubuntu 14.04上的Apache Tomcat 8.0

共享文件目录

NFS 14.04上的NFS

共享数据库

Ubuntu 14.04上的MySQL 5.5

重要说明:请注意,这不是一个全面的指南,不包括生产级别的要求,例如用户权限,网络和数据库安全性等。请确保这些要求由系统,网络和数据库管理员负责。

创建一个共享文件目录

共享应用程序服务器要访问的文件目录。该目录用于存储配置文件,系统生成的文件和上传的文件。
在此示例中,共享文件目录将是文件服务器中的目录/ export / wflow 

在文件服务器中,安装NFS服务器

sudo apt-get install portmap nfs-kernel-server 

创建共享目录并设置权限

sudo mkdir -p / export / wflow  sudo chown nobody:nogroup / export / wflow 

配置NFS导出共享目录,编辑/ etc / exports将目录导出到本地192.168.1.0子网中

sudo vim / etc / exports 

/ etc / exports中应包含以下内容:

/ export / wflow 192.168.1.0/255.255.255.0(rw,no_subtree_check,async) 

导出共享并重新启动NFS服务

sudo exportfs -ra  sudo服务nfs-kernel-server重启 

 

将共享目录挂载到应用程序服务器中

在应用程序服务器中,安装NFS客户端

apt-get install nfs-common 

创建新目录/ opt / joget / shared / wflow来挂载共享目录并设置目录权限

sudo mkdir -p / opt / joget / shared / wflow  sudo chmod 777 / opt / joget / shared / wflow 

安装共享目录。

sudo mount -t nfs wflow:/ export / wflow / opt / joget / shared / wflow 

测试读写权限以确认目录共享是否有效。

echo test123> /opt/joget/shared/wflow/test.txt

创建一个共享数据库

安装MySQL(https://help.ubuntu.com/14.04/serverguide/mysql.html

sudo apt-get安装mysql-server 

创建一个名为jwedb的应用程序服务器可访问的数据库

mysql -u root 

运行以下MySQL命令来创建一个空白数据库

创建数据库jwedb;  放弃

使用Joget数据库模式填充新创建的数据库

mysql -uroot jwedb </path/to/jwdb-mysql.sql

配置数据库权限

mysql -u root 

运行以下MySQL命令来授予用户joget和密码joget的权限

将jwedb。*的所有权限授予'joget'标识的'joget'@'%';  冲洗特权;  放弃

配置MySQL以侦听来自远程主机的数据库连接。用你最喜欢的编辑器编辑my.cnf文件

sudo vim /etc/mysql/my.cnf 

通过在行前添加#来注释掉bind-address指令

#bind-address = 127.0.0.1 

重新启动MySQL

sudo服务mysql重启

在应用程序服务器中,测试到数据库服务器database_host的远程连接 

mysql -h database_host -u joget -p



部署应用程序服务器

在每个应用程序服务器上安装Apache Tomcat。在每个应用程序服务器中,运行以下命令将tomcat解压缩到/ opt / joget中:

sudo mkdir -p / opt / joget /  sudo tar xvfz apache-tomcat-8.0.20.tar.gz / opt / joget /

启动每个应用服务器

sudo cd /opt/joget/apache-tomcat-8.0.20  sudo ./bin/catalina.sh启动

打开Web浏览器并访问每个服务器以确认http:// server:8080 / jw

 

 

配置应用服务器会话复制

通过编辑apache-tomcat-8.0.20 / conf / server.xml配置Tomcat进行集群。 jvmRoute =“node01” 添加Engine标记并取消注释Cluster标记。

<引擎名称=“Catalina”defaultHost =“localhost”jvmRoute =“node01”>  <Cluster className =“org.apache.catalina.ha.tcp.SimpleTcpCluster”/> 

配置本地域IP。验证本地服务器名称解析为IP而不是127.0.1.1。假设服务器名称为server1,IP为192.168.1.10,请编辑/ etc / hosts并设置:

192.168.1.10 server1 

通过运行ifconfig验证应用程序服务器之间的组播是否启用并查找MULTICAST。 如果有问题,请尝试http://blogs.agilefaqs.com/2009/11/08/enabling-multicast-on-your-macos-unix/

重新启动Tomcat服务器。

sudo cd /opt/joget/apache-tomcat-8.0.20  sudo ./bin/catalina.sh停止  sudo ./bin/catalina.sh启动

验证应用程序服务器之间的会话复制。apache-tomcat-8.0.20 / logs中catalina.out日志文件应显示类似于:

INFO:启动本地主机上的集群管理器#/ jw  2016年1月17日上午11:21:32 org.apache.catalina.ha.session.DeltaManager getAllClusterSessions  INFO:Manager [localhost#/ jw],从org.apache.catalina.tribes.membership.MemberImpl [tcp:// {127,0,0,1}:4001,{127,0,0,1 },4001,alive = 55733886,securePort = -1,UDP Port = -1,id = { - 57 118 -98 -98 110 -38 64 -68 -74 -25 -29 101 46 103 5 -48} = {},命令= {},域= {},]。如果在60秒内没有收到会话状态,此操作将超时。  2016年1月17日上午11:21:32 org.apache.catalina.ha.session.DeltaManager waitForSendAllSessions  INFO:Manager [localhost#/ jw]; 会话状态发送时间为1/16/16 11:21上午104毫秒收到。

有关Tomcat集群的更多信息,请参阅 http://tomcat.apache.org/tomcat-8.0-doc/cluster-howto.html

 

配置负载平衡器

在负载平衡器服务器中,安装Apache HTTP Server 

sudo apt-get install apache2 

安装代理和平衡器模块

sudo a2enmod头文件proxy proxy_balancer proxy_http 

使用代理和平衡器模块配置新站点。在/ etc / apache2 / sites-available中创建一个名为jwsite的新文件

sudo vim /etc/apache2/sites-available/jwsite.conf 

添加内容

NameVirtualHost *  <VirtualHost *>  DocumentRoot“/ var / www / jwsite”   ServerName localhost  ServerAdmin support@mycompany.com  DirectoryIndex index.html index.htm   <代理平衡器://集群>  BalancerMember http:// server1:8080 route = node01  BalancerMember http:// server2:8080 route = node02  命令否认,允许  全部允许  </代理>   ProxyPreserveHost打开  ProxyPass / jw平衡器:// cluster / jw stickysession = JSESSIONID  ProxyPassReverse / jw平衡器:// cluster / jw  </虚拟主机>

启用新的站点并重新启动Apache

sudo a2ensite jwsite  sudo服务apache2重新加载



部署和配置Joget工作流LEE

如前面2.2 Joget集群配置中所述部署和配置Joget Workflow LEE 


 

  • No labels