
# Emobile集群配置
1. 修改数据库服务 
   移动平台数据库服务默认只允许本机连接访问，所以在集群环境下需要对数据库添加远程连接用户，允许次节点能够连接到主节点上面的数据库服务。具体操作步骤如下：
   在**主节点**服务器上使用以下命令连接MySQL：
   Windows操作系统命令为：（假设系统安装在D:\\路径下）
   ```
   D:\emp\dbsvr\mysql\bin\mysql.exe -P4806 -uroot -pWEAVERemobile7!@#
   ```
   Linux操作系统命令为：（假设系统安装在/usr路径下）
   ```
   /usr/emp/dbsvr/mysql/bin/mysql -uroot -pWEAVERemobile7\!@# --socket=/usr/emp/data/mysqldata/mysql.sock
   ```
   进入控制台，然后执行以下命令添加远程连接用户：
   ```
   create user 'root'@'192.168.1.12' identified by 'WEAVERemobile7!@#';
   grant all privileges on *.* to 'root'@'192.168.1.12' with grant option;
   flush privileges;
   ```
   ![](https://support.huaweicloud.com/weaveroa-dgo/public_sys-resources/note_3.0-zh-cn.png)
   192.168.1.12为次节点IP地址。如果有多个次节点，则将以上命令中的192.168.1.12修改为其他次节点的IP地址，并再次执行即可。
   
   
2. 修改缓存服务 
   移动平台缓存服务默认只允许本机连接访问，所以在集群环境下需要修改配置，允许次节点能够连接到主节点上面的缓存服务。具体操作步骤如下：
   修改主节点服务器上的配置文件：
   Windows操作系统为：emp\\cachesvr\\redis\\redis.windows-service.conf
   Linux操作系统为：emp/cachesvr/redis/redis.conf
   - 找到"bind 127.0.0.1"，在这一行最前面加上"#"字符，即将"bind 127.0.0.1"修改为"# bind 127.0.0.1"
   
   - 找到"protected-mode yes"，在这一行最前面加上"#"字符，即将"protected-mode yes"修改为"#protected-mode yes"；修改后保存文件。
   
   
   
   
3. 子节点服务部署 
   在所有子节点服务器上解压移动平台基础安装包，并直接覆盖最新版的升级包文件
   ![](https://support.huaweicloud.com/weaveroa-dgo/public_sys-resources/caution_3.0-zh-cn.png)
   不要执行安装和启动命令，只是解压安装包，同时覆盖升级包
   
   
4. 修改基础配置 
   **修改配置文件：**emp\\work\\config\\application-custom.properties；所有节点服务上的这个文件都需要修改，但主次节点修改的内容有些不同。
   1. **主节点修改内容：**
      - 找到"**session配置**"的部分配置，将 spring.session.store-type=none 修改为 spring.session.store-type=redis
      
      - 找到"**其他配置**"的部分配置，将 emobile.base-setting.cache-type=ehcache 修改为 emobile.base-setting.cache-type=redis
      
      - 找到"**集群配置**"的部分配置，在后面增加一条数据 info.cluster.nodeId=node1
       
   
   2. **次节点修改内容：** （前两点与主节点修改内容相同）
      - 找到"**session配置**"的部分配置，将 spring.session.store-type=none 修改为 spring.session.store-type=redis
      
      - 找到"**其他配置**"的部分配置，将 emobile.base-setting.cache-type=ehcache 修改为 emobile.base-setting.cache-type=redis
      
      - 找到"**集群配置** "的部分配置，在后面增加一条数据 info.cluster.nodeId=node2
        ![](https://support.huaweicloud.com/weaveroa-dgo/public_sys-resources/note_3.0-zh-cn.png)
        info.cluster.nodeId的值必须保证唯一，即不允许出现不同的节点info.cluster.nodeId值相同的情况。如果有多个次节点，则需要修改info.cluster.nodeId的值为node3、node4...
        
      
      - 找到"**数据源配置**"-"MySQL数据库"的部分配置，将127.0.0.1修改为主节点IP地址192.168.1.11
      
      - 找到"**redis配置**"的部分配置，将127.0.0.1修改为主节点IP地址192.168.1.11
       
   
   
   修改后保存文件。
   
   
5. 启动服务 
   重新启动主节点所有服务，先执行stop命令停止服务，再执行start命令启动服务
   启动子节点应用服务，注意子节点只需要启动应用（tomcat）服务，执行\\emp\\appsvr\\目录下start_tomcat命令进行启动
   启动后分别单独访问每个节点的地址进入系统，确保每个服务都启动正常并可以正常访问，同时确保提交license授权
   
   
6. 配置负载均衡 
   负载均衡配置这里以nginx为例（**其他负载均衡软件及设备请跳过该步骤自行配置，本文不做说明**），假设nginx服务所在服务器IP地址为192.168.1.10，安装目录为：Windows操作系统为D:\\nginx目录，Linux系统为/usr/local/nginx目录。
   修改nginx.conf文件（通常位于nginx安装目录下的conf目录），在http节点里面添加以下内容：
   ```
   upstream em7-cluster {
   ip_hash;
   server 192.168.1.11:8999;
   server 192.168.1.12:8999;
   }
   server {
   listen        8999;
   server_name  localhost;
   location / {
   root   html;
   index  index.html index.htm;
   proxy_pass http://em7-cluster;
   proxy_set_header Host $host:$server_port;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
   }
   ```
   使用"nginx"命令启动nginx服务，或者"nginx -s reload"命令重启nginx服务。
   
   
7. 系统访问地址设置 
   经过以上步骤，集群配置已经完成，系统的访问地址也变为负载均衡的地址（http://192.168.1.10:8999），访问并登录到移动平台后台，进入到基础参数设置页面，请正确设置系统的访问地址并保存
   系统外部地址：请填写负载均衡地址http://192.168.1.10:8999映射到外网的地址
   系统内部地址：请填写http://192.168.1.10:8999
   文件存储路径：需要配置网络共享目录
   图1系统访问地址设置   
   ![](https://support.huaweicloud.com/weaveroa-dgo/zh-cn_image_0000001739652401.png)
   
   
8. 消息服务地址说明 
   特别注意：消息服务（openfire）是需要客户端进行连接的，在EM管理后台需要配置消息服务的地址，配置的地址需要是主节点的服务器地址，不要使用负载均衡的地址，负载均衡只是针对tomcat服务（8999端口）的。
   
   
 
