【问题标题】:What Java based technology is used for building Stateless Applications? [closed]什么基于 Java 的技术用于构建无状态应用程序? [关闭]
【发布时间】:2015-03-02 09:38:18
【问题描述】:

我们的一个应用程序将更多地成为基于微服务的架构,其驱动因素包括云就绪、响应式、跨渠道、拥抱 API、重型客户端架构、无状态应用程序、动态可扩展应用程序等。

这里的无状态应用程序是什么意思?什么是网络 可用于构建无状态应用程序的技术?

【问题讨论】:

    标签: java jakarta-ee stateless stateless-session


    【解决方案1】:

    “无状态”意味着服务器端应用程序在调用它时不会保留有关单个客户端的信息。许多应用程序将信息保存在 HTTP 会话中(维护会话状态或缓存可能再次需要的内容),无状态应用程序不会这样做。客户端可以调用服务器端并在本地保持状态。

    无状态很好,因为它意味着任何服务器都可以为任何请求提供服务,而不必求助于集群(HTTP 会话必须在服务器之间复制,这会随着服务器数量的增加而停滞不前)或粘性会话(将请求发送到用户启动会话的同一台服务器,因此服务器的负载很容易变得不平衡)。在没有状态的情况下,请求可以更均匀地分布在服务器上,如果一个服务器出现故障,问题就不那么严重了。

    服务器可以使用 REST 或 SOAP 通过 Web 服务调用公开数据。无论您使用 Spring 还是纯 Java EE,都有很多框架可以帮助您公开服务。客户端可以调用这些服务并使用 AngularJs 在浏览器中维护一个本地模型作为 DOM 的一部分。让服务以 JSON 格式返回数据使它们更便于客户端 JavaScript 使用。

    【讨论】:

    • 这个答案开始为我展示一些探索的方向。如果你不介意,根据你的回答,我还有几个问题。如果客户端要维护状态,是否意味着仅通过 Cookies?或者像 AngularJs 这样的框架是否提供了 cookie 以外的技术?另外,当用户会话存储在客户端时如何确保安全性?
    • 这是否也意味着应用服务器中实际上不会维护任何会话?
    • @yathirigan:这可能取决于应用程序服务器。对于某些人来说,即使你不想要一个,你也会得到一个 httpsession。
    • @yathirigan: angular 将状态作为 DOM 的一部分保存在浏览器中。并且没有安全措施,请勿将任何您不希望客户看到和操作的东西放在那里。
    猜你喜欢
    • 2011-11-13
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多