Akka Camel 和 ActiveMQ:如何设置交付模式
Akka Camel and ActiveMQ: How to set delivery mode
据我所知,ActiveMQ 默认将传递模式设置为 PERSISTENT
...那么在使用 Akka-Camel 时如何将特定主题的传递模式设置为 NON_PERSISTENT
?下面是我的示例代码:
import akka.actor._
import akka.camel._
import org.apache.activemq.camel.component.ActiveMQComponent
case class MyMessage(body: String)
class MyProducer() extends Actor with Producer with Oneway {
def endpointUri: String = "activemq:MyTopic"
}
class SimpleConsumer() extends Actor with Consumer {
def endpointUri: String = "activemq:MyTopic"
def receive = {
case msg: CamelMessage => println(msg)
}
}
object MyApp extends App {
val actorSystem = ActorSystem("MyApp")
val system = CamelExtension(actorSystem)
system.context.addComponent(
"activemq",
ActiveMQComponent.activeMQComponent("nio://localhost:61616")
)
val consumer = actorSystem.actorOf(Props[MyConsumer])
val producer = actorSystem.actorOf(Props[MyProducer])
...
producer ! MyMessage("hello")
...
actorSystem.shutdown()
}
在端点 URI 上设置了 options。
"activemq:MyTopic?deliveryPersistent=false"
据我所知,ActiveMQ 默认将传递模式设置为 PERSISTENT
...那么在使用 Akka-Camel 时如何将特定主题的传递模式设置为 NON_PERSISTENT
?下面是我的示例代码:
import akka.actor._
import akka.camel._
import org.apache.activemq.camel.component.ActiveMQComponent
case class MyMessage(body: String)
class MyProducer() extends Actor with Producer with Oneway {
def endpointUri: String = "activemq:MyTopic"
}
class SimpleConsumer() extends Actor with Consumer {
def endpointUri: String = "activemq:MyTopic"
def receive = {
case msg: CamelMessage => println(msg)
}
}
object MyApp extends App {
val actorSystem = ActorSystem("MyApp")
val system = CamelExtension(actorSystem)
system.context.addComponent(
"activemq",
ActiveMQComponent.activeMQComponent("nio://localhost:61616")
)
val consumer = actorSystem.actorOf(Props[MyConsumer])
val producer = actorSystem.actorOf(Props[MyProducer])
...
producer ! MyMessage("hello")
...
actorSystem.shutdown()
}
在端点 URI 上设置了 options。
"activemq:MyTopic?deliveryPersistent=false"