hornetq保证消息到达队列

hornetq保证消息到达队列,hornetq,Hornetq,我正在使用org.hornetq.api.core.client 我如何保证我发送的消息实际到达队列(不是客户端,只是队列) 请注意,该队列是有效队列 这是指无效队列。其他与向客户交付相关的信息,如。这实际上取决于您发送信息的方式 你的第一个问题是关于 首先,在JMS上,您必须选择发送到无效队列的方式,因为生产者将验证队列的存在。在HornetQ core api上,您发送到一个地址(而不是队列),您可能有一个未绑定的队列。因此,您必须查询地址是否有队列 现在,为了确认已收到消息: 场景一,持

我正在使用org.hornetq.api.core.client 我如何保证我发送的消息实际到达队列(不是客户端,只是队列)

请注意,该队列是有效队列


这是指无效队列。其他与向客户交付相关的信息,如。

这实际上取决于您发送信息的方式

你的第一个问题是关于 首先,在JMS上,您必须选择发送到无效队列的方式,因为生产者将验证队列的存在。在HornetQ core api上,您发送到一个地址(而不是队列),您可能有一个未绑定的队列。因此,您必须查询地址是否有队列

现在,为了确认已收到消息:

  • 场景一,持久消息,非事务性
每条消息都被阻止发送。服务器确认收到消息后,客户端将立即解除阻止。这是自动完成的。。你什么都不用做

  • 场景二,非持久消息,非事务性
默认情况下没有确认书。消息是异步发送的。我们假设消息是暂时的,如果你丢失了它也没什么大不了的。您可以通过在ServerLocator上的非持久发送上设置block来更改此设置

  • 场景三,事务性(持久性或非持久性)
只要您调用commit,消息就会出现在队列中

  • 场景四,确认发送
您设置了一个回调,一旦服务器在队列上对其进行了确认,就会得到一个方法调用。查看手册中的确认回调。JMS2上也有相同的功能

producer.send("validQueue",clientMessage)