Apache spark 使用RDD仅用于确认目的的JMS消息线程安全

Apache spark 使用RDD仅用于确认目的的JMS消息线程安全,apache-spark,concurrency,jms,rdd,distributed-system,Apache Spark,Concurrency,Jms,Rdd,Distributed System,我知道JMS会话不是线程安全的。但是,如果我试图确认Spark RDD上“存储”的消息对象,那么会话实际上是并发访问的吗?如何进行路由以确认每个消息(或其中的一批)会话? 如果这确实是危险的,那么有什么想法可以让我安全地使用Spark的JMS消息,并在一些验证之后确认它们 提前感谢。JMS只是一个API,因此它实际上取决于您使用的客户端实现。但是,我要说的是,大多数实现都会在内部使用最初用于消费消息的会话来确认消息,因为会话是将确认发送回消息来源的JMS服务器的最简单方式。因此,同时确认来自同一

我知道JMS会话不是线程安全的。但是,如果我试图确认Spark RDD上“存储”的消息对象,那么会话实际上是并发访问的吗?如何进行路由以确认每个消息(或其中的一批)会话? 如果这确实是危险的,那么有什么想法可以让我安全地使用Spark的JMS消息,并在一些验证之后确认它们


提前感谢。

JMS只是一个API,因此它实际上取决于您使用的客户端实现。但是,我要说的是,大多数实现都会在内部使用最初用于消费消息的会话来确认消息,因为会话是将确认发送回消息来源的JMS服务器的最简单方式。因此,同时确认来自同一会话的消息是危险的


我不熟悉Spark,所以我无法回答您问题的这一部分。

请包括一个。这实际上是一个概念性/理论性问题。一个代码示例是一行代码,反映的内容不多。但是,它是:messages.forEachRDD(.foreach(.acknowledge()))