【问题标题】:Ignite Web Session Clustering design delimaIgnite Web Session Clustering 设计问题
【发布时间】:2017-09-07 17:20:06
【问题描述】:

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

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

我有两个选择

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

几个注意事项

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

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

几个注意事项

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

还有其他我可以采用的设计方法吗? 我是否忽略了任何一种方法?

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

提前致谢。 大神

【问题讨论】:

    标签: session spring-boot ignite session-management


    【解决方案1】:

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

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

    【讨论】:

    • 我同意。感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多