Hybris 集群节点之间基于事件的通信

Event based communication between Hybris cluster nodes

在什么情况下需要在集群节点之间进行通信? ClusterAwareEvent 接口提供了指定源节点和目标节点的可能性,但是集群节点不应该尽可能相互独立吗?

好吧,他们需要沟通的原因有很多,或者更确切地说,您希望他们沟通的原因有很多。

首先有一个概念叫做Cache Invalidation Concept,即每个集群成员只持有有效数据,但可以通过TCP或UDP相互通信,将一些缓存条目标记为无效。例如,如果数据库项目已更改。

失效过程的基本概述:

  • 产品说明已更改。因此,所有缓存条目 引用产品无效。
  • 对描述的修改是在节点上完成的,现在必须向所有集群节点发送数据无效的通知。
  • 将产品保存在其缓存中的节点丢弃缓存数据 下一个产品并从数据库中重新检索产品 使用产品的时间。

Hybris 中您希望与其他节点通信的集群的其他功能是:

  • 负载平衡
  • 半会话故障转移 - 这允许会话(粘性会话)转移到不同的集群。如果说服务器因维护或硬件故障而停机,则很有用。

这些是我能想到的为什么您希望集群进行通信的主要原因。