【问题标题】:Session data between servlets within a cluster集群内 servlet 之间的会话数据
【发布时间】:2017-05-19 19:34:59
【问题描述】:

所以我不完全确定如何正确地提出这个问题。我将简单地写下我所知道的情况、要求和想法来描绘这幅画。

我有两个 servlet:一个是 grails 2.1.1 servlet,另一个是 Spring Webflow servlet。我的任务是将 grails servlet 的 iframe 插入 Spring Webflow servlet 的页面中。我当然提出的问题是会话数据之一。 servlet 部署到同一台服务器上的 tomcat,但集群中有 3 台服务器(所有 3 台服务器上都有两个 servlet)。粘性会话已启用。我的问题是:我什至可以在两个 servlet 之间共享会话数据吗?我想 iframe 会为 grails 应用程序生成一个新的 jsession id。如果我可以在两个 servlet 之间共享数据,那将如何实现?使用典型的 getAttribute/setAttribute 函数?

感谢您的意见!

【问题讨论】:

  • 你为什么不使用网络服务?
  • 这个想法是将 grails 应用程序的形式添加到现有的 Web 流应用程序中。我实际上正在研究使用 Web 服务,因为它会大大降低复杂性。感谢您的意见和保证,Web 服务是一种更合理的方式。

标签: java grails load-balancing spring-webflow


【解决方案1】:

在您的设置中,您不能直接在不同的 tomcat 会话之间共享数据。你有两个选择:

  1. 在您的 tomcat 之间使用一种媒介来共享和交换数据,例如数据库或一些内存缓存。

  2. 直接在 http-request 中发送您想要的所有数据。

【讨论】:

  • 感谢您的澄清。考虑到项目的范围,内存缓存对核桃来说似乎有点像大锤。选项 2(以 @Armaiti 所述的宁静服务的形式)是我选择的。为了保护敏感元素,jasypt 被用来混淆数据。
猜你喜欢
  • 2012-04-09
  • 2018-06-25
  • 2011-08-16
  • 2020-09-22
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
相关资源
最近更新 更多