有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java rest web服务中的web服务异步任务

我目前正在为电子商务门户网站开发订单管理系统

后端是java中的rest Web服务,而前端是angular js

java中的rest服务在下订单/更新订单时执行许多任务

  1. 在数据库中存储/更新订单和订单中的项目
  2. 将此订单通知第三方物流部
  3. 向客户发送电子邮件通知
  4. 向客户发送sms通知 等

我们已经使用阻塞队列为另一个特性实现了异步队列

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是明智之举


共 (1) 个答案

  1. # 1 楼答案

    电子商务门户的订单管理不是一个简单的问题。它很可能有可伸缩性要求,使用简单的Blocking Queue进行异步处理不是一个好主意

    基于JVM的阻塞队列位于内存队列中,要求生产者和消费者在同一个JVM进程中运行

    对于在客户下新订单时发送电子邮件,您需要确保电子邮件确实已发送,并且应用程序重新启动不会导致阻塞队列中存在的数据丢失

    因此,您很可能应该使用进程外队列系统,如Apache KafkaApache ActiveMQ或等效系统