Я создал небольшой пример Apache Camel, в котором используется компонент camel-zeromq.JeroMQ сконфигурирован как реализация ZMQ.
Здесь выдержка из build.gradle.kts
dependencies {
// 3.0.0-M1, see https://stackoverflow.com/q/55314360/1809463
val camelVersion = "2.23.1"
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.apache.camel:camel-spring-boot-starter:$camelVersion")
implementation("org.apache-extras.camel-extra:camel-zeromq:2.22.0") {
exclude(group = "org.zeromq", module = "zeromq-scala-binding_2.10")
exclude(group = "com.typesafe.akka", module = "akka-zeromq_2.10")
exclude(group = "com.typesafe.akka", module = "akka-actor_2.10")
}
implementation("org.zeromq:jeromq:0.4.0") // versions > 0.4.0 don't work
testImplementation("junit:junit:4.12")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.apache.camel:camel-test:$camelVersion")
testImplementation("org.apache.camel:camel-test-spring:$camelVersion")
}
Следующие две ошибки возникают при завершении работы, когда установлен ShutdownStrategy
с небольшим тайм-аутом, в противном случае без ошибокрегистрируется, и приложение не завершает работу полностью.
java.lang.IllegalStateException: null at zmq.Ctx.terminate (Ctx.java:198) ~ [jeromq-0.4.0.jar: na] at org.zeromq.ZMQ $ Context.term (ZMQ.java:316) ~ [jeromq-0.4.0.jar: na] at org.apacheextras.camel.component.zeromq.Listener.stop (Listener.java:130) ~ [camel-zeromq-2.22.0.jar: 2.22.0] в org.apacheextras.camel.component.zeromq.ZeromqConsumer.doStop (ZeromqConsumer.java:63) [camel-zeromq-2.22.0.jar: 2.22.0]
и
java.lang.InterruptedException: null at java.lang.Object.wait (собственный метод) ~ [na: 1.8.0_40] atjava.lang.Thread.join (Thread.java:1253) [na: 1.8.0_40] at org.apacheextras.camel.component.zeromq.ZeromqProducer.stop (ZeromqProducer.java:122) ~ [camel-zeromq-2.22.0.jar: 2.22.0]
Более подробная информация доступна здесь и здесь .Проект доступен на GitHub .