Java REST Api(在 tomcat 上运行)- 在客户端和服务器之间获得实时同步的最简单方法
Posted
技术标签:
【中文标题】Java REST Api(在 tomcat 上运行)- 在客户端和服务器之间获得实时同步的最简单方法【英文标题】:Java REST Api (running on tomcat) - easiest way to get real-time synchronization between client and Server 【发布时间】:2015-02-11 01:58:13 【问题描述】:我想在没有 Ajax 间隔拉取的情况下实现客户端和服务器之间的实时同步。所以这是我的设置:
前端:主干 API:Java REST Api (GET/PUT/POST) 数据库:mysql
这就是我的 web 应用程序现在的工作方式:
-
对 API 的 Ajax 请求 ->
API 从数据库中检索信息 ->
API 根据 MySQL 的响应形成模型 ->
API 向客户端(前端)发送响应
这是一个非常基本的设置,带有 Ajax Get/Post 请求。
API 有大约 25k 行代码。我们现在正在考虑客户端和后端之间的实时同步。 你觉得对我来说可能是一个简单的方法吗? (我不希望得到非常详细的答案——我的问题并不详细 :) 如果你能指出一些好的方向和新技术,那就太酷了)。
如果你们中的一些人重写了他们的 API 以实现 实时同步 并告诉我他们的客户的好处,这将是很有趣的 :)
编辑:
好吧,我试图找出哪种技术更适合我的应用程序 - SSE 或 WebSockets。我没有找到任何关于此的新帖子(仅 2-3 年前的帖子)。 因此,“实时”的用例类似于 twitter-feed。对我来说,SSE 似乎是完美的候选人。 WebSockets 将非常复杂 - 考虑使用 Websockets 进行扩展(也许是 Pusher)。那么您认为什么更适合“实时”提要 - SSE 或 Websockets? (更新到达客户端之前是否有 2-3 秒的延迟无关紧要)
谢谢
【问题讨论】:
【参考方案1】:尝试使用 webSocket API。例如,它在基于 node.js 的 Sails 中可用 还有一个java EE websocket实现。
【讨论】:
感谢您的回答。那么将 REST API 与 webSocket 混合是否有意义?还是只写一个新的 API 会更好? (当然 - 真的很难回答。但我当时只是对不同的意见感兴趣:)) 如果业务允许,您应该尝试尽可能多地重用已经存在的内容。不要重新发明***。最好的选择是一个开源框架,您可以在其中采用不符合您需求的东西。是的,这是有道理的,它们实际上是互补的。 我刚刚阅读了有关服务器端事件的信息。如果您不想埋葬旧 API 并构建新 API,这似乎是一个很好的解决方案。 SSE 只是保持客户端和服务器之间的连接 - 如果有更新,客户端可以根据更新做出反应。我发现该解决方案的唯一问题是,数据库负载非常高。您如何看待 SSE? 其实叫Server-sent events。您应该自己处理数据库负载。您可以使用一些缓存策略。好主意。尝试一下,看看有什么负载,然后改进。 是的。服务器发送事件。谢谢你。这对我帮助很大!以上是关于Java REST Api(在 tomcat 上运行)- 在客户端和服务器之间获得实时同步的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章
部署在 Tomcat 上的 Spring Boot Rest API 提供 404 但独立工作一切正常
仅在 REST API 调用上的 Spring Boot 404