Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';从非驼峰组件向驼峰组件发送消息的最佳方式是什么?_Java_Apache Camel_Couchbase - Fatal编程技术网

Java 什么';从非驼峰组件向驼峰组件发送消息的最佳方式是什么?

Java 什么';从非驼峰组件向驼峰组件发送消息的最佳方式是什么?,java,apache-camel,couchbase,Java,Apache Camel,Couchbase,我有一个运行的调度单例,它通过RESTAPI从Couchbase DB节点收集数据,还有一个Camel组件,负责向外部工具发送错误报告和统计信息。我们系统中的其他Camel组件可以很好地使用这个“错误报告”端点。在这种情况下,如何使我的单身汉有用? (我正在寻找类似于Camel的Junit测试中的东西,ProducerTemplate。)如果您真的无法获取Camel上下文,那么您还有一些其他选择 如果您在同一个JVM中,并且在启动类路径中有camel核心,请启动另一个CamelContext并使

我有一个运行的调度单例,它通过RESTAPI从Couchbase DB节点收集数据,还有一个Camel组件,负责向外部工具发送错误报告和统计信息。我们系统中的其他Camel组件可以很好地使用这个“错误报告”端点。在这种情况下,如何使我的单身汉有用?
(我正在寻找类似于Camel的Junit测试中的东西,ProducerTemplate。)

如果您真的无法获取Camel上下文,那么您还有一些其他选择

  • 如果您在同一个JVM中,并且在启动类路径中有camel核心,请启动另一个CamelContext并使用vm组件

  • 如果您对JMX感到满意,那么可以通过访问Camel上下文,并使用该协议向任何端点发送消息。一点锅炉板,但不要求您处于同一JVM或甚至同一台机器中

  • 启动并将其用于模块间通信。我喜欢这种方法,因为它可能比JMX更容易,并且非常容易将发送方/接收方彼此分离(比如说,您希望从另一个系统发送)。但是,也存在一些性能开销

  • 使用任何其他直接外部协议。,/,。每个人都有自己的缺点或好处。这取决于您的知识和需求(如果您是RMI大师,您可能会认为这是一条不错的道路)


  • 为什么不能简单地使用
    ProducerTemplate
    ?我无法从单例中获得骆驼上下文,这是ProducerTemplate所需要的,正如我在测试中看到的,这是一个虚拟上下文。我同情3。解决方案我会注意的。性能并不是那么关键,数据是关于统计和错误报告的。谢谢