使用JMS线程池或发送电子邮件
-
24-09-2019 - |
解决方案
之间进行通信应用、JMS是一个非常好的解决办法,特别是对于事件和通知。JMS允许进行此类通知发送和接收使用了被称为异步通讯由此发送和接收器都没有知识的另一个并没有要求可以在同一时间。
说是一个非常广泛使用的信息经纪人为客户提供Api Java、C++、C#Perl,PHP,蟒蛇,红宝石等。这就允许使用医用编写的应用程序在爪哇和其他语言。
我已经实现JMS消息很多,很多时候出于各种各样的业务情况处理的事件和通知。绝大多数的这些时候,我建议和/或使用 弹簧JMS 无论什么样的信息经纪人正在使用。弹簧JMS是非常容易使用,极为强大和高度的可伸缩性。弹簧JMS消除的复杂性建立自己的信息生产者和消费者的消息,这可以节省大量的时间。
看到它是多么容易发送消息,使用弹簧JMS,检查一篇博客我最近写的题为《 使用弹簧JmsTemplate发送JMS消息.我也是工作在博客上张贴关于接收邮件的使用弹簧JMS。
如果你有任何进一步的问题,让我知道。
布鲁斯
其他提示
我有一个类似的要求一次,我们使用JMS。然后主要问题是如何处理有错误的,因为SMTP是事实上没事务:
- 那是正确的,如果某些电子邮件丢失?
- 那是正确的,如果某些电子邮件发送两次?
我们决定最好还是来送消息两次,并且在这里或多或少的设计,我们有:
我们依靠容器管理交易,如果由于某种原因的电子邮件不能送到,我们决定回滚JMS交易;该信息将是重新传送之后通过JMS和一个新的尝试来发送消息。
如果JMS的消息传递交易失败的后的电子邮件发送(例如因为一个问题JMS),交易将自动回和重新传递的信息是以后。在这种情况下,电子邮件发送两次,因为STMP不是事务性的。
即使电子邮件可以送(从观点的代码),SMTP server仍然可以有问题以后。在这种情况下,JMS已经交付和消费,因此我们没有办法知道哪些电子邮件已经处理和如何重新送他们。
但是,我们已经在使用JMS。我不会介绍JMS只是为,鉴于主要论点是,JMS是事务性的,但SMTP不是无论如何。
我会去为什么打火机-可能有一个线程池--和储存国家在一个数据库知道的电子邮件需要发送或已经发送。如果有一些问题,你可以看看数据库和采取的临时决定。
我知道这个答复很末到本dicsussion,但我希望它仍然是上集成的ActiveMQ和Tomcat寻求信息乡亲有价值。
我已经有很多人问我要与他们有整合的ActiveMQ和Tomcat,所以我决定写一些关于它的文章问题的帮助。这不仅是主题涵盖 ActiveMQ的行动(见第8章),但我也发表了一系列文章它名为的ActiveMQ和Tomcat:最佳拍档。希望人们会发现这是很有帮助的。
我会去一个持久的JMS(我只用WLS JMS和WebSphere MQ所以无法比拟的AQ VS JBoss的,取其报价交付更好的保证)。另外,我会认真考虑将电子邮件引擎完全独立的应用程序,这取决于你希望有多少流量增长。