gpt4 book ai didi

java - Spring Boot 中的 RabbitMQ

转载 作者:行者123 更新时间:2023-12-02 09:09:42 24 4
gpt4 key购买 nike

我想听听建议。因此,我正在创建一个微服务,每当客户打开主页时,该服务将从数据库获取数据并发送回网站。因此,在这种情况下使用 RabbitMQ 会有好处吗?我正在考虑在 Spring Boot 微服务中的前端和 Controller 之间添加 RabbitMQ 层。这样就不会错过任何请求。它有助于减少延迟吗,因为我想要一个非常低延迟的系统

最佳答案

这将是对消息队列的滥用。当您想要完成某些操作(通常是长时间执行的操作),但又不想等待结果时,消息用于委托(delegate)异步操作。或者通知其他服务,发生了一些事情,但您不确定它们是否可用。

使用 MQ 将数据获取到网页中,会产生更多有益的问题。Web应用程序,不提供推送机制(没有爬行或Web套接字)。网页只能向服务器调用数据,服务器本身无法将数据推送到网页。

建议的解决方案:

如果您想显示来自单个数据源的数据,或者单个连接可以提供所有数据,那么简单的 Spring Boot MVC 就可以了。

如果您使用多个数据源(例如表),那么您可以利用 SPA 的优势应用。以最小布局返回主页。然后使用多个 AJAX 调用从数据库中获取数据。这样用户将同时调用所有源,并且调用不会互相阻塞。

如果您想进入微服务,您可以编写一个 node.js 前端应用程序,它将通过 REST api 从您的 spring-boot 应用程序获取数据。

您的队列可用于通知用户其任务进程、状态更改等,但为此您必须使用 Web 套接字。

更新(消息异步示例):

用户想要从所有表生成报告,并将其发送到远程文件存储 (S3)。从用户的角度来看,这将是一个简单的按钮点击。因为ation会被委托(delegate)给另一个服务并异步执行。用户仅被通知,他的操作已被请求。您的服务将发布一条消息,请求(由另一个或同一服务)制作此报告,然后推送到数据文件存储。

该过程完成后(甚至几个小时后),新消息将发布到用户服务或电子邮件,表示报告已完成。

因此用户可以单击生成报告按钮,然后回家。当一切完成后,他将收到一封电子邮件通知。

关于java - Spring Boot 中的 RabbitMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59518714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com