我在架构系统的最后一部分时遇到了困难。目前我正在运行一个Tomcat服务器,其中包含一个响应客户端请求的Servlet。每个请求会将处理消息添加到异步队列中(我可能会使用Spring或更可能使用Amazon SQS通过JMS)。
事件顺序如下:
发送方: 1.接收客户端请求 2.向与此请求相关的DB中添加一些数据,并使用唯一的ID来标识 3.将表示此请求的消息对象添加到消息队列中
接收方: 1.从队列中拉取新的消息对象 2.解开对象并根据消息对象中包含的信息从网站中获取一些信息 3.发送电子邮件提醒 4.更新与该请求相同的唯一ID的DB行,以表明已完成此操作的信息
我很难确定如何正确处理接收方。一方面,我可能可以创建一个简单的Java程序,该程序从命令行启动,选择队列中的每个项目并处理它。那安全吗?让该程序作为另一个线程在Tomcat容器中运行是否更有意义?我不希望这样串行地进行,也就是说,接收端应该能够同时处理多个对象——使用多个线程。我希望这始终运行,24小时不间断。
建立接收端的选项有哪些?
事件顺序如下:
发送方: 1.接收客户端请求 2.向与此请求相关的DB中添加一些数据,并使用唯一的ID来标识 3.将表示此请求的消息对象添加到消息队列中
接收方: 1.从队列中拉取新的消息对象 2.解开对象并根据消息对象中包含的信息从网站中获取一些信息 3.发送电子邮件提醒 4.更新与该请求相同的唯一ID的DB行,以表明已完成此操作的信息
我很难确定如何正确处理接收方。一方面,我可能可以创建一个简单的Java程序,该程序从命令行启动,选择队列中的每个项目并处理它。那安全吗?让该程序作为另一个线程在Tomcat容器中运行是否更有意义?我不希望这样串行地进行,也就是说,接收端应该能够同时处理多个对象——使用多个线程。我希望这始终运行,24小时不间断。
建立接收端的选项有哪些?