我想创建一个使用 servlet 和 JSP 开发的 Web 应用程序集群。现在我需要跨实例缓存数据,因此任何机构都可以帮助我配置此步骤,任何引用或任何指针都会有所帮助。提前致谢
问问题
74 次
1 回答
1
是的你可以。我刚才回答了一个类似的问题,我相信它也适用于这种情况。
我的建议是利用 Hazelcast 客户端的 NearCache 功能,这样您就可以将 Hazelcast 节点与 tomcat 分离。
Hazelcast 集群:使用 IMap 配置设置一个 Hazelcast 集群并实现一个 MapStore,它应该负责加载具有缓存合格段的 IMap。还可以使用事件处理程序来处理刷新缓存。
Tomcat Servlet 层:在每个 tomcat 服务器上启动 Hazelcast 客户端并在这些客户端上启用 NearCache。一旦 Hazelcast 客户端启动,NearCache 设置将负责同步其集群中的内容。两个 tomcat 实例都将与缓存内容保持同步。
要记住的事情:
- HZ Cluster 中的节点数量取决于缓存的大小。建议将最大堆大小保持在 4GB 左右,以避免 GC 开销并根据需要启动尽可能多的节点。
- NearCache 将是 tomcat 容器本身的一部分,因此在启动 tomcat 时分配适当的堆大小。
- 正确分区地图内容并保持较小的大小以避免 I/O 问题,因为在同步期间集群和 tomcat 容器之间会有数据传输。
让我知道这是否适合您的架构并有任何问题。
NearCache 参考:http:
//docs.hazelcast.org/docs/3.6/manual/html-single/index.html#configuring-client-near-cache
于 2016-07-18T17:19:58.607 回答