我理解JMS会话不是线程安全的。但是,如果我尝试确认在Spark RDD上“存储”的Message对象,会话是否实际同时被访问?路由如何确认每个消息(或一批)会话?如果这确实很危险,那么我怎样才能安全地从Spark中消费JMS消息并在经过一些验证后确认它们?
提前致谢。
JMS只是一个API,所以它实际上取决于您使用的客户端实现。但是,我会说大多数实现都会在内部使用最初用于消息消息的会话来确认消息,因为会话是将确认发送回消息来源的JMS服务器的最简单方法。因此,同时确认来自同一会话的消息将是危险的。
我不熟悉Spark所以我无法解决你问题的这一部分。