我有以下情况:
我按照以下方式开始骆驼路线:
public class MyMessage implements Runnable {
public void run() {
// omitted here
}
}
from("netty:tcp://localhost:7777?textline=true&sync=false")
... // omitted here: parse message to pojo MyMessage, set header "group-identifier"
.to(seda:process);
此骆驼路由使用TCP流,解析每个传入消息的有效载荷并将其转换为MyMessage
pojo,并在与消息相对应的交换上设置group-identifier
头... >
现在我要消耗seda:process
如下:
run()
来执行。我想为此提供/定义一个ExecutorService
,以便我可以控制线程数。我可以在此处应用哪些企业集成模式?如何将这些概念映射到骆驼?
我了解到ActiveMQ具有消息组(http://activemq.apache.org/message-groups.html)的概念。这可能提供一种确保同一组的两个消息永远不会同时执行的方法。不过,我不确定仅为此而引入ActiveMQ不会算是过分的。也可以使用“核心” Camel / Java来实现吗?
答案 0 :(得分:5)
在ActiveMQ中很容易做到这一点。以下代码段可根据需要模拟正在执行的消息:
这依赖于http://activemq.apache.org/message-groups.html中所述的ActiveMQ消息组。
SELECT * from table
WHERE time >= '2018-12-13'
AND time <= '2018-12-16 23:59:59.999'
group by code
ORDER BY ID
那是说,我(仍然)想知道这是否可以使用纯EIP /骆驼芯完成。