【问题标题】:meaning of the term "Stateful" in programming编程中“有状态”一词的含义
【发布时间】:2014-10-03 20:24:40
【问题描述】:

有状态这个词是什么意思?

我听我的同事谈论有状态的 Web 服务,服务是有状态的是什么意思?

许多人说无状态 Web 服务意味着更好的性能和可扩展性,为什么会这样?

【问题讨论】:

    标签: web-services


    【解决方案1】:

    有状态的网络服务能够记住调用之间的数据——通常使用成员变量,或者你有什么。

    如果您看到getNextFoogetCurrentBar 或类似方法,则它可能是有状态服务。相反,无状态服务是客户端每次都需要提供调用所需的所有信息的服务。

    有状态服务通常比无状态服务更难开发和扩展。它要求服务器将特定用户会话的状态保持一段时间。在多台服务器之间共享该状态甚至更加困难(如果您需要多台服务器)。在服务器故障转移/重启的情况下,如果使用无状态服务,客户端可能不会受到影响,但有状态服务可能会出现问题。

    【讨论】:

    • 嗨,2014 年,如何将此状态信息保存到内存数据库中,例如内存表中的 oracle coherence 或 SQL Server。
    • 为什么一个有状态的 web 服务很难开发,是因为服务器重启了,所以我们需要编写额外的逻辑来将状态保存在一个像 db 这样的永久存储中。
    • 感谢您在周日抽出时间回答这个问题
    • 您显然可以使用 SQL 或任何外部机制来存储和检索“状态”。但是,当我听到“无状态 Web 服务”这个词时,我想到的是 Web 服务层本身的状态。通常是实现类中的成员变量。几乎所有具有写入功能(无状态或全状态)的 Web 服务都会更改其他地方的某些状态(数据库或其他)。
    猜你喜欢
    • 2021-09-25
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    相关资源
    最近更新 更多