java - 安心 服务 可靠

标签 java rest session-state

我正在开发 Restful 服务,我们将在数据库中插入/更新新记录。

由于REST使用HTTP进行通信,而HTTP并不可靠,我担心如果连接失败,请求可能无法发送到服务器。

我在 link 中找到的建议之一是“如果连接失败,只需从客户端重试。”但我们对客户端应用程序没有任何控制权。

其他解决方案是实现 RabbitMQ/JMS 等消息传递系统以确保可靠性。

我还在下面发现了link添加 session 状态可以提高可靠性。我无法理解这是如何发生的,更重要的是,良好的休息服务不总是无状态的吗?

总结一下我的问题:

  1. 为了实现可靠性,消息传递系统是最好的方法吗?
  2. session 管理如何帮助我实现可靠性?

最佳答案

消息传递可以提供帮助,只要您在收到插入或更新信息的命令时不进行任何处理,因为您需要立即将命令放入队列中。此解决方案通常会增加相当多的复杂性,因为您需要在完成命令处理后异步通知客户端(它是成功还是失败?...或者我是否未能发送结果?)。

session 管理?为了可靠性?从来没有听说过 :)。 Restful 服务通常是无状态的......所以这里没有 session !

另一个选项(但取决于您的客户端如何与您集成)是允许您的客户端生成您要存储/更新的项目的 ID,在这种情况下,如果他们返回错误,但您有成功处理命令,客户端可以重试,并且会发生相同的更新。您可以将其与版本控制配对,以防止过时的更新迟到。

关于java - 安心 服务 可靠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641309/

相关文章:

java - 类实例必须在更多类 OSGi 中可见

java - 如何动态指定Spring Restful WebService URL?

rest - 使用composer-rest-server资源管理器和多用户身份验证来发布新身份

java - Spring RestTemplate : get with nullable paramaeter

wcf - 将用 [DataContract] 装饰的对象放入 StateServer?

java - Liquibase: 附近的语法不正确;

java - Java/Struts 中基于角色的操作授权

java - 包含 Jquery UI.js 文件后无法为 JSP 编译类

asp.net - ASP.Net Cookieless 如何工作?

ASP.Net session 状态提供程序故障转移场景