首页 文章

Ignite Web Session Clustering design delima

提问于
浏览
1

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

我有带有UI的springboot应用程序 . 它集群应用程序,即负载均衡器后面的springboot app的多个实例 . 我正在使用org.apache.ignite.cache.websession.WebSessionFilter()拦截请求并为任何传入请求创建\ manage session .

我有2个选项

  • 将ignite节点嵌入springboot应用程序中 . 因此,将这些嵌入式点火节点(在每个springboot JVM上)作为集群的一部分 . 这样,请求会话将在整个springboot群集中进行复制 . 在负载均衡器上,我不必保持粘性连接 . 请求可以循环或最小负载算法转到任何应用程序 .

几点考虑

  • 建筑师很简单 . 我不担心缓存是否已关闭等 .

  • 现在缓存正在嵌入,它使用来自app jvm的CPU和内存 . 它有可能使我的应用资源匮乏 .

  • 已点亮在应用JVM外部运行的集群 . 所以现在我在springboot app中运行客户端节点并连接到主要的点火集群 .

几点考虑

  • 由于任何原因,如果客户机节点无法连接到主要点火集群 . 我是否必须手动管理会话,然后在稍后的时间点手动将这些会话推送到点火集群?

  • 如果我在本地管理会话,我需要在负载均衡器上进行粘连 . 如果可能,我想避免 .

  • 我倾向于接近2,但想要简单 . 因此,如果客户端节点无法创建会话(覆盖org.apache.ignite.cache.websession.WebSessionFilter()),则会将用户重定向到指示应用程序已关闭的页面或群集中的另一个应用程序节点 .

我可以采取其他任何设计方法吗?我在任何一种方法中都忽略了什么?

如果你已经处理过,请分享你的想法 .

提前致谢 . 至尊

1 回答

  • 1

    如果你有会话和粘性会话的本地缓存,为什么你需要使用点火?

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

相关问题