我会尽量清楚地描述我的问题。假设我在 Amazon EC2 上运行 Java REST Web 服务。HTTP 请求通过字符串“testString”到达我的一项服务。我将它保存在某个通用类的内存中,假设我将它添加到字符串列表('stringsList')中。
我的问题是:如果我的 Web 服务有多个实例,那么每个实例都可以使用此字符串吗? 如果用户将产生一个调用“stringsList.getString('testString')”的 HTTP 请求,它肯定会得到字符串?或者它可能会错过它,因为它可用,但在我的 Web 服务的不同实例上?
我希望能够将我的 Web 服务作为具有负载平衡和多个实例的可扩展服务运行,但仍然能够保存一些特定的 HTTP 请求信息(也许这正是 REST 应该是无状态的原因,因此我的设计是如果我想这样做错了吗?)。我的目标是这样的网络服务:
我会尽量提供细节,虽然我不太确定:
- 如果我通过 SSH 将 Web 服务运行到我的 EC2 实例,并且只有一个这样的实例,那不会有问题,对吧?
- 如果我做同样的事情,但对于许多实例,并通过 Amazon Elastic 负载平衡?
- 如果 2 的答案是可能会错过,但我仍然想实现这一点,那么替代方法是什么?
也许在 Amazon EC2 上这样做不是一个好主意,而是在不同的服务上?如果有,是哪一个?
- 将它放入数据库不是我想要的,我只想将它保存在内存中几个小时以备不时之需。
谢谢,
立然