我目前正致力于电子商务门户网站的订单管理系统
后端是java中的rest webservices,而前端是angular js。
在下达/更新订单时,java中的其余服务执行许多任务
我们已经使用阻塞队列为另一个功能实现了异步队列。
1. use the same queue(current size is 200 and is in memory) and post to it
2. create a new queue inside the rest webservice application
3. integrate with 3rd party queues.
有人可以提供关于#3的见解吗?或者选择#1还是#2来明智?
答案 0 :(得分:0)
电子商务门户的订单管理不是一个简单的问题。它很可能具有可伸缩性要求,并且使用简单的Blocking Queue进行异步处理不是一个好主意。
基于JVM的阻塞队列是内存中队列,需要生产者和使用者在同一个JVM进程中运行。
要在客户下新订单时发送电子邮件,您需要确保电子邮件确实已发送,应用程序重新启动不会导致阻止队列中丢失数据。
因此,您很可能应该使用进程外队列系统,例如Apache Kafka或Apache ActiveMQ或同等系统。