Ignite Web Session 集群设计 delima

Ignite Web Session Clustering design delima

我有关于 Ignite 网络会话集群的设计问题。

我有 UI 的 springboot 应用程序。它集群应用程序,即负载均衡器后面的 springboot 应用程序的多个实例。我正在使用 org.apache.ignite.cache.websession.WebSessionFilter() 来拦截请求,并使用 create\manage 会话来处理任何传入的请求。

我有2个选项

  1. 在 springboot 应用程序中嵌入 ignite 节点。因此,让这些嵌入式点燃节点(在每个 springboot JVM 上)成为集群的一部分。这种方式请求会话在整个 springboot 集群中被复制。在负载均衡器上,我不必维护粘性连接。该请求可以以循环法或最小负载算法转到任何应用程序。

很少考虑

  1. 建筑师很简单。我不用担心缓存被 下来等等
  2. 现在正在嵌入缓存,它使用 CPU 和内存 来自应用程序 jvm。它有可能耗尽我的应用程序的资源。

    1. 在应用程序 JVM 之外启用集群 运行ning。所以现在我 运行 springboot 应用程序中的客户端节点并连接到主 ignite 集群。

很少考虑

  1. 无论出于何种原因,如果客户端节点无法连接到 main ignite 簇。我是否必须手动管理会话然后推送 这些会话稍后手动指向点燃集群?
  2. 如果我在本地管理会话,我将需要建立粘性连接 负载均衡器。如果可能的话,我想避免。
  3. 我倾向于方法 2,但希望使其简单。所以如果客户端节点 无法创建会话(覆盖 org.apache.ignite.cache.websession.WebSessionFilter()) 它重定向 用户页面指示应用程序已关闭或到另一个应用程序节点 集群。

我可以采用其他设计方法吗? 我在这两种方法中都忽略了什么吗?

如果你处理过,请分享你的想法。

提前致谢。 施瑞

如果您有会话和粘性会话的本地缓存,为什么还需要使用 ignite?

但是,最好使用ignite,你的应用程序将具有HA,如果某个节点出现故障,整个应用程序仍然可以正常工作。 我同意你应该拆分应用程序集群和点燃集群,但是,我认为你不应该关心服务器和客户端连接问题。 这种问题应该会导致500错误,如果你的数据库宕机或者无法连接,你会模拟主存储吗?