据我所知,大多数JavaScript应用程序通过ajax与服务器进行交互,这是一种HTTP形式。假设我们要制作一个JavaScript应用程序,通过Amazon Simple Queue Service或其他类似的消息队列服务交换消息与服务器进行交互。相比HTTP方法,这样做的利弊如何?
据我所知,大多数JavaScript应用程序通过ajax与服务器进行交互,这是一种HTTP形式。假设我们要制作一个JavaScript应用程序,通过Amazon Simple Queue Service或其他类似的消息队列服务交换消息与服务器进行交互。相比HTTP方法,这样做的利弊如何?
一个仅使用AJAX的方法和SQS等系统之间最大的区别是持久性。
在AJAX系统中,客户端和服务器必须同时运行,因为如果客户端关闭,正在传输的消息可能会“丢失”。像许多队列系统一样,SQS解耦了这个问题,并增加了一层处理灵活性(可能不需要)。
我的应用程序现在可以随时将消息放入队列中,服务器可以将它们取出并处理,但是虽然它们现在都依赖于队列,但它们并不直接依赖于彼此。
一个简单的类比可能是电话 - 如果我打电话给你而你没有回答,我们就结束了。但是如果你有留言机,我可以留下一个或多个消息,供你方便地收集。