【发布时间】:2014-10-17 02:35:05
【问题描述】:
我有一种情况,我需要应用程序将消息发送到消息代理。然后,另一个侦听代理的客户端必须使用队列中的消息,确定它们是什么类型的消息,并将消息传递给适当的处理程序。
例如,如果Fizz POJO 被序列化为 JSON,然后发送到代理,则其他进程必须使用它,将其从 JSON 反序列化回 Fizz 实例,然后知道传递 Fizz转到FizzHandler 处理器。 Buzz 消息也是如此:应该将其反序列化回 Buzz 并发送到 BuzzHandler 等。
我相信路由的伪代码应该是这样的:
from(broker)
.unmarshal().json(JsonLibrary.Gson)
.dynamicRouter(someMechanismForDeterminingHandler)
我相信动态路由器是解决这个问题的合适处理器,但不是 EIP 专家,我可能不适合我。
这里有两个大问题:
- Camel-GSON 怎么知道一种 JSON 代表
Fizz对象,而另一种 JSON 字符串代表Buzz对象? - 应该使用什么 EIP/Camel DSL/处理器将反序列化的消息路由到正确的处理程序?
【问题讨论】:
标签: java apache-camel gson messaging enterprise-integration