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