我有一个正在读消息掀起了JMS持久主题的独立的Java程序并将其提交到线程池进行处理时JVM崩溃的处理。我这样做是出于明显的并发原因,但保持处理这些消息的顺序,我仍然将它们提交给单个线程池。现在,这里是我的关于JVM崩溃的担忧..使用线程池和JMS
├28类事务
我不读,因为它会减慢我的过程中处理事务上下文,我都刻意回避的消息。所以,我正在积累消息在线程池的阻塞队列中。但是如果JVM在线程池中等待处理10条消息时崩溃,我将丢失该数据。
- 交易
我相信,如果我在事务中读取并处理每条消息,如果出现问题,那么消息将在备份时重新传递给进程。
既然是很多人在低延迟系统工作的一个共同的问题,不知道人们如何经验丰富的解决这个问题?谢谢。
我相信JMS模型是每个线程有一个队列订阅者,当它完成处理时,它会提交每条消息。 –
这里的实际问题是什么?是“我应该使用交易还是非交易?” –
是的,我应该使用交易还是非交易?但是与此同时,如果不想使用事务处理,那么有哪些流行的技术可以安全地从任何崩溃中恢复。 – endless