5.6.2.2. 配置多个 Middleware 服务交互
多个 Middleware 服务器可以共同维护用户会话共享列表和其它类对象,还能协调处理过期的缓存。每个中间件服务都需要开启 cuba.cluster.enabled 参数启用这个功能。以下是 tomcat/conf/app-core/local.app.properties
文件的示例:
cuba.cluster.enabled = true
cuba.webHostName = host3
cuba.webPort = 8080
cuba.webContextName = app-core
对于中间件服务来说,需要设定正确的 cuba.webHostName,cuba.webPort 和 cuba.webContextName 这三个属性的值,这样能用这三个属性组成唯一的服务器 ID。
服务之间的交互机制是基于 JGroups。平台为 JGroups 提供了两个配置文件:
-
jgroups.xml
- 基于 UDP 的协议栈,适用于启用了广播通信的本地网络。这个配置当集群功能开启的时候会被默认使用。 -
jgroups_tcp.xml
- 基于 TCP 的协议栈,适用于任何网络。使用这个协议要求在TCP.bind_addr
和TCPPING.initial_hosts
参数中显式设定集群成员的地址。如果需要使用这个配置,需要设定 cuba.cluster.jgroupsConfig 这个应用程序属性。
为了配置环境中的 JGroups 参数,从 cuba-core-<version>.jar
的根目录拷贝合适的 jgroups.xml
文件到项目的 core 模块或者 tomcat/conf/app-core
目录,并且修改这个文件。
ClusterManagerAPI
bean 提供 Middleware 集群中服务器交互的编程接口。可以在应用程序中使用,需要时可参考 JavaDocs 和平台代码的用法。