Ignite Web Session 集群设计 delima
Ignite Web Session Clustering design delima
我有关于 Ignite 网络会话集群的设计问题。
我有 UI 的 springboot 应用程序。它集群应用程序,即负载均衡器后面的 springboot 应用程序的多个实例。我正在使用 org.apache.ignite.cache.websession.WebSessionFilter() 来拦截请求,并使用 create\manage 会话来处理任何传入的请求。
我有2个选项
- 在 springboot 应用程序中嵌入 ignite 节点。因此,让这些嵌入式点燃节点(在每个 springboot JVM 上)成为集群的一部分。这种方式请求会话在整个 springboot 集群中被复制。在负载均衡器上,我不必维护粘性连接。该请求可以以循环法或最小负载算法转到任何应用程序。
很少考虑
- 建筑师很简单。我不用担心缓存被
下来等等
现在正在嵌入缓存,它使用 CPU 和内存
来自应用程序 jvm。它有可能耗尽我的应用程序的资源。
- 在应用程序 JVM 之外启用集群 运行ning。所以现在我 运行 springboot 应用程序中的客户端节点并连接到主 ignite 集群。
很少考虑
- 无论出于何种原因,如果客户端节点无法连接到 main ignite
簇。我是否必须手动管理会话然后推送
这些会话稍后手动指向点燃集群?
- 如果我在本地管理会话,我将需要建立粘性连接
负载均衡器。如果可能的话,我想避免。
- 我倾向于方法 2,但希望使其简单。所以如果客户端节点
无法创建会话(覆盖
org.apache.ignite.cache.websession.WebSessionFilter()) 它重定向
用户页面指示应用程序已关闭或到另一个应用程序节点
集群。
我可以采用其他设计方法吗?
我在这两种方法中都忽略了什么吗?
如果你处理过,请分享你的想法。
提前致谢。
施瑞
如果您有会话和粘性会话的本地缓存,为什么还需要使用 ignite?
但是,最好使用ignite,你的应用程序将具有HA,如果某个节点出现故障,整个应用程序仍然可以正常工作。
我同意你应该拆分应用程序集群和点燃集群,但是,我认为你不应该关心服务器和客户端连接问题。
这种问题应该会导致500错误,如果你的数据库宕机或者无法连接,你会模拟主存储吗?
我有关于 Ignite 网络会话集群的设计问题。
我有 UI 的 springboot 应用程序。它集群应用程序,即负载均衡器后面的 springboot 应用程序的多个实例。我正在使用 org.apache.ignite.cache.websession.WebSessionFilter() 来拦截请求,并使用 create\manage 会话来处理任何传入的请求。
我有2个选项
- 在 springboot 应用程序中嵌入 ignite 节点。因此,让这些嵌入式点燃节点(在每个 springboot JVM 上)成为集群的一部分。这种方式请求会话在整个 springboot 集群中被复制。在负载均衡器上,我不必维护粘性连接。该请求可以以循环法或最小负载算法转到任何应用程序。
很少考虑
- 建筑师很简单。我不用担心缓存被 下来等等
现在正在嵌入缓存,它使用 CPU 和内存 来自应用程序 jvm。它有可能耗尽我的应用程序的资源。
- 在应用程序 JVM 之外启用集群 运行ning。所以现在我 运行 springboot 应用程序中的客户端节点并连接到主 ignite 集群。
很少考虑
- 无论出于何种原因,如果客户端节点无法连接到 main ignite 簇。我是否必须手动管理会话然后推送 这些会话稍后手动指向点燃集群?
- 如果我在本地管理会话,我将需要建立粘性连接 负载均衡器。如果可能的话,我想避免。
- 我倾向于方法 2,但希望使其简单。所以如果客户端节点 无法创建会话(覆盖 org.apache.ignite.cache.websession.WebSessionFilter()) 它重定向 用户页面指示应用程序已关闭或到另一个应用程序节点 集群。
我可以采用其他设计方法吗? 我在这两种方法中都忽略了什么吗?
如果你处理过,请分享你的想法。
提前致谢。 施瑞
如果您有会话和粘性会话的本地缓存,为什么还需要使用 ignite?
但是,最好使用ignite,你的应用程序将具有HA,如果某个节点出现故障,整个应用程序仍然可以正常工作。 我同意你应该拆分应用程序集群和点燃集群,但是,我认为你不应该关心服务器和客户端连接问题。 这种问题应该会导致500错误,如果你的数据库宕机或者无法连接,你会模拟主存储吗?