Hazelcast

Hazelcast 为分布式缓存(这是我们使用二级缓存的方式)以及“数据网格”功能提供了一组非常好的功能。

我的期望是,大多数人会更喜欢使用近缓存的客户端/服务器模式。

客户端/服务器模式

我们可以在 client/server 模式下使用 Hazelcast,这意味着我们的应用程序使用 Hazelcast 客户端 与 Hazelcast 集群(服务器)进行通信。

在此模式下,Bean 缓存数据在集群中的所有 Hazelcast 服务器上进行分区,而不是在我们的应用程序中。我们可以选择为我们的一些或所有 Bean 类型使用 近缓存,这样做可以提高性能(通过拥有本地数据),但会增加我们应用程序中的内存占用(因为它现在保存了一些缓存数据)。

配置

对于客户端/服务器模式,配置文件应为 hazelcast-client.xml

服务器模式

在服务器模式下,我们的应用程序启动一个 Hazelcast 服务器实例,它是 Hazelcast 集群的一个成熟成员。这意味着它将保存数据等。

配置

对于服务器模式,配置文件应为 hazelcast.xml

依赖项

ebean-hazelcast 添加一个依赖项。当 Ebean 启动时,ebean-hazelcast 会自动注册为二级缓存实现。

禁用二级缓存

在开发和测试期间,禁用 L2 缓存的使用通常很有用。

属性
## disable use of L2 cache (for dev / testing etc)
ebean.disableL2Cache=true

配置

XML 配置

Hazelcast 将在没有任何配置的情况下运行,但通常您需要分别为客户端/服务器或服务器模式添加 hazelcast-client.xmlhazelcast.xml 配置。

在 hazelcast-client.xml 中,您可以指定 near cache 的使用,例如,这是一个常见需求。

编程配置

您可以通过创建 Hazelcast ClientConfigConfig 的实例并通过以下方式进行设置来以编程方式配置 Hazelcast:

ClientConfig configuration = ...;
serverConfig.setServiceObject("hazelcastConfiguration", configuration);

如果此配置实例在 Ebean 中传递,Ebean 将使用它来配置 Hazelcast 客户端或服务器实例。否则,它将使用默认配置,Hazelcast 将自动搜索并使用 XML 配置文件。

开始使用

  • 使用 @Cache 注释 Bean
  • 添加 maven 依赖 ebean-hazelcast
  • 可选择添加 hazelcast-client.xml 或 hazelcast.xml
  • 对于客户端/服务器模式,您需要一个正在运行的 Hazelcast 服务器