15.2. 群集模式

在 JBoss EAP 6 里您可以用 Infinispan 以两种方式配置群集。正确的方法取决于您的要求。每种模式下可用性、一致性、可靠性和可扩充性之间都需要取舍。在选择群集模式之前,您必须根据您的网络确定最重要的方面,并平衡其他要求。
复制模式

复制模式(Replicated Mode)自动检测并添加群集上的新实例。对这些实例的修改将复制到群集里的所有节点上。小型群集里复制模式通常是最佳选择,这是因为在网络上复制的信息量较少。您可以配置 Infinispan 来使用 UDP 多点传送,它可以在某种程度上将网络堵塞减缓。

分布模式

分布模式(Distribution Mode)允许 Infinispan 线性地扩充群集。分布模式使用一致的哈希算法来确定新节点应该放置在哪个群集里。保留的信息的拷贝数量是可以配置的。保留的信息拷贝和数据的持久性及性能之间需要进行取舍:保留越多的拷贝,性能越受到影响,但在服务器发生鼓掌时越不可能丢失数据。通过定位入口而无需多点传送或存储元数据,哈希算法也可以减少网络流量。

同步和异步复制

复制可以同步或异步模式执行,所选的模式取决于您的要求及应用程序。如使用同步复制,处理用户请求的线程将阻塞至复制成功。只有在复制成功时响应才会发送给客户,然后释放线程。同步复制将对网络流量有影响,因为它要求得到群集里每个节点的响应。然而,它的优势是可以确保所有的修改都已应用于群集的所有节点。

异步复制是在后台执行的。Infinispan 实现是一个复制队列,后台线程使用它来执行复制。复制通过时间或者队列大小来触发。复制队列可提高性能,因为在群集节点间没有进行对话。异步复制的缺点是不是很准确。失败的复制尝试会写入日志,而不是实时通知。