【发布时间】:2015-03-02 09:38:18
【问题描述】:
我们的一个应用程序将更多地成为基于微服务的架构,其驱动因素包括云就绪、响应式、跨渠道、拥抱 API、重型客户端架构、无状态应用程序、动态可扩展应用程序等。
这里的无状态应用程序是什么意思?什么是网络 可用于构建无状态应用程序的技术?
【问题讨论】:
标签: java jakarta-ee stateless stateless-session
我们的一个应用程序将更多地成为基于微服务的架构,其驱动因素包括云就绪、响应式、跨渠道、拥抱 API、重型客户端架构、无状态应用程序、动态可扩展应用程序等。
这里的无状态应用程序是什么意思?什么是网络 可用于构建无状态应用程序的技术?
【问题讨论】:
标签: java jakarta-ee stateless stateless-session
“无状态”意味着服务器端应用程序在调用它时不会保留有关单个客户端的信息。许多应用程序将信息保存在 HTTP 会话中(维护会话状态或缓存可能再次需要的内容),无状态应用程序不会这样做。客户端可以调用服务器端并在本地保持状态。
无状态很好,因为它意味着任何服务器都可以为任何请求提供服务,而不必求助于集群(HTTP 会话必须在服务器之间复制,这会随着服务器数量的增加而停滞不前)或粘性会话(将请求发送到用户启动会话的同一台服务器,因此服务器的负载很容易变得不平衡)。在没有状态的情况下,请求可以更均匀地分布在服务器上,如果一个服务器出现故障,问题就不那么严重了。
服务器可以使用 REST 或 SOAP 通过 Web 服务调用公开数据。无论您使用 Spring 还是纯 Java EE,都有很多框架可以帮助您公开服务。客户端可以调用这些服务并使用 AngularJs 在浏览器中维护一个本地模型作为 DOM 的一部分。让服务以 JSON 格式返回数据使它们更便于客户端 JavaScript 使用。
【讨论】: