Apache spark 有没有一种方法可以使用spark结构化流读取ActiveMQ中先前排队的消息?

Apache spark 有没有一种方法可以使用spark结构化流读取ActiveMQ中先前排队的消息?,apache-spark,activemq,spark-structured-streaming,Apache Spark,Activemq,Spark Structured Streaming,我有一个向ActiveMQ主题发送消息的生产者和一个具有以下属性的客户端: val optionsMap: Map[String, String] = Map[String, String]("brokerUrl" -> brokerUrl, "topic" -> topicName, "persistence&quo

我有一个向ActiveMQ主题发送消息的生产者和一个具有以下属性的客户端:

val optionsMap: Map[String, String] =
      Map[String, String]("brokerUrl" -> brokerUrl,
                          "topic" -> topicName, 
                          "persistence" -> "memory", 
                          "username" -> username, 
                          "password" -> password, 
                          "clientId" -> "something")
现在,当我的客户端应用程序未运行并且我向
ActiveMQ主题
发送一条消息时,
排队的消息数
增加一条,而
排队的消息数
保持不变。
但是,只要启动客户端,
排队的消息数
就等于
排队的消息数
,尽管客户端应用程序不产生任何输出。如何解决这个问题?我希望我的客户端应用程序输出所有先前排队的消息。

除非您发送到具有已注册持久订阅的主题,否则代理将立即丢弃所有已发送的消息,因为主题就是这样定义的。只有活动的主题订阅服务器或持久订阅服务器才会接收发送到主题的消息。

我正在指定一个
clientId
,这不会使我的订阅服务器持久吗?不,当然,在制作者端,这无论如何都不会起作用。订阅者以前必须使用订阅名称和客户端id进行订阅才能创建持久订阅。请指出我如何在spark structured streaming中创建持久订阅。。。我的意思是我已经定义了clientId,如何定义订阅名称?