【问题标题】:How to get a Hazelcast map inside a Camel route?如何在骆驼路线内获得 Hazelcast 地图?
【发布时间】:2021-01-27 11:57:45
【问题描述】:

我对 Camel(以及 hazelcast)真的很陌生,而且我最近一直在玩弄它。一个看似简单的操作给我带来了很大的麻烦,我正在努力寻找任何地方的任何路标。

我有一个听众正在关注榛树地图上的变化。如果所述更改符合某个标准,我想抓取整个地图并将其发送到处理器。像这样的:

from(hazelcast:map:someMap?hazelcastInstance=#hazelcastInstance)
.filter().method(SomeFilter.class, filterMethod)
.???
// If the filter cafeterias are met, get the entire map and send it to a processor

但我真的不确定如何获取整个地图本身,尤其是使用 Java DSL。我发现的最接近的事情是获取地图的keySet,然后在其上调用getAll(keySet),对于这么简单的事情,这似乎是不必要的设计?如果这确实是首选方法,那么还有另一个问题 - 您如何将所述 keySet 作为参数传递给 getAll 操作?即:

<snip>
.setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_KEYS_OPERATION))
.to(hazelcast:map:someMap?hazelcastInstance=#hazelcastInstance) // Gets the keySet just fine.
.setHeader(HazelcastConstants.OPERATION, constants(HazelcastConstants.GET_ALL_OPERATION))
.????
// I've tried .setHeader(HazelcastConstants.OPERATION_PARAM, new 
// SimpleExpression("${body}")> here,
// amongst many other things, but, I just get an empty object back, so it's
// pretty clear I'm messing up 
// the format or parameter choice here.
.to(hazelcast:map:someMap?hazelcastInstance=#hazelcastInstance)

顺便说一下,这里使用的是camel 2.18.0。

【问题讨论】:

    标签: java routes apache-camel hazelcast


    【解决方案1】:

    经过更多的尝试和错误,我得到了它的工作。我发誓这是我尝试的第一件事,但我一定是在第一次尝试时搞砸了它并被难住了。您真正要做的就是获取 keySet,然后放入 OBJECT_ID。所以是这样的:

    .setHeader(HazelcastConstants.OPERATION, constant(HazelcastConstants.GET_KEYS_OPERATION))
    .to(hazelcast:map:someMap?hazelcastInstance=#hazelcastInstance)
    .setHeader(HazelcastConstants.OPERATION, constants(HazelcastConstants.GET_ALL_OPERATION))
    .setHeader(HazelcastConstants.OBJECT_ID, new SimpleExpression("${body}"))
    .to(hazelcast:map:someMap?hazelcastInstance=#hazelcastInstance)
    

    (注意:在较新版本中它是 hazelcast-map。)

    还有,你有一个 Hashmap 可以使用。替代方法似乎使用QUERY,但我无法弄清楚查询的正确语法。我很想知道是否有人有一个带有 QUERY 标头的工作示例...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-05
      • 2016-04-21
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多