当前位置: 首页 > 知识库问答 >
问题:

使用hazelcast缓存部署tomcat servlet

平元明
2023-03-14

我想在使用hazelcast缓存的两节点tomcat集群上部署一个servlet。设置如下:

    null

共有1个答案

东门焕
2023-03-14

我的建议是利用Hazelcast客户端的NearCache特性,这样您就可以从Tomcat中解耦Hazelcast节点。

Hazelcast集群:使用IMap配置设置一个Hazelcast集群,并实现一个MapStore,该MapStore应该负责用符合缓存条件的段加载IMap。还要使用事件处理程序来处理缓存的刷新。

Tomcat Servlet层:在每个Tomcat服务器上启动Hazelcast客户端,并在这些客户端上启用NearCache。一旦Hazelcast客户机启动,NearCache设置将负责同步其集群中的内容。这两个tomcat实例都是最新的缓存内容。

  1. HZ群集中的节点数取决于缓存的大小。建议将堆的最大大小保持在4GB左右,以避免GC开销,并根据需要旋转更多的节点。
  2. NearCache将是tomcat容器本身的一部分,因此在启动tomcat时分配适当的堆大小。
  3. 适当地划分映射内容并使其保持较小的大小,以避免I/O问题,因为在同步期间集群和tomcat容器之间会有数据传输。

让我知道这是否适合您的架构和有任何问题。

 类似资料:
  • 大家好 我尝试在SpringBoot应用程序中使用Hazelcast作为本地缓存,如下教程:https://hazelcast.com/blog/non-stop-client-with-near-cache/ 黑泽尔铸造分级版: 在我的版本中,我没有看到为连接到集群设置最大超时的方法(setClusterConnectTimeoutMillis()): ..如果没有它,它就会掉下来 com.ha

  • 我正在寻找集成Hazelcast到我的应用程序... 我的要求是将所有数据加载到缓存并从缓存中提取。。 我有两个选择。 1) Hazelcast IMap 2)因为我使用的是Spring启动,所以我可以使用(@Cacheable/@CacheEvict)。 我能得到一些建议吗... 提前谢谢你。。

  • 我的客户端代码看起来是这样的(Cache只是一个没有属性的可序列化类): 我现在的问题是:使用这段代码,我得到了一个ClassNotFoundError,它试图将东西放到复制的映射或常规映射中,但在专用的Hazelcast服务器(成员)中,而不是在客户端。 每当我从客户端配置中删除近缓存配置时,所有的工作都非常完美,当然,除了我没有近缓存。 我错过了什么?

  • 我已经将Hazelcast缓存配置为Spring Boot应用程序中的分布式缓存。 我想要为同一实例提供本地缓存,其中很少缓存不应共享。 如何在应用中一起做本地和分布式缓存?

  • 我有一个由hazelcast节点网格组成的应用程序,它使用了广泛的运行时字节码生成(asm)。具体地说,我正在根据用户输入的过滤器表达式动态构建谓词<>Java函数。我希望将谓词存储在一个映射中,这样它们就可以在整个集群中使用,而不必重新编译。谓词不是唯一的实例。我还有在运行时生成的ORM样式映射类,它们需要在整个集群中共享。这些类由名为DynamicLassLoader的自定义类加载器加载。 一