因此,在阅读了一些文档并从你们这里得到了很多帮助之后,我终于实现了一个动态选择端点的收件人列表(一个动态收件人列表):
在我的代码中,MainApp_A 每 10 秒生成一次报告,我希望它同时将报告发送到所有服务器,而不是一一进行。因此,我开发了以下路线。
主应用程序_A
main.addRouteBuilder(new RouteBuilder(){
@Override
public void configure() throws Exception {
from("direct:start").multicast().parallelProcessing()
.beanRef("recipientListBean", "route").end()
.log("${body}");
}
});
收件人列表Bean
@RecipientList
public Set<String> route(String body) {
return servers; //returns a collection of several severs
}
我还检查了多播模式和动态路由的文档:
现在我有几个问题,我很困惑。所以我有几个问题:
- 接收者动态列表是否只是多播模式与动态路由模式的结合点?
- 单独的多播()调用纯粹是顺序的,对吗?使用 multicast() 和 recipientList() 有什么区别?
- 为了使多播()和收件人列表()一致,我必须使用并行处理()。就我而言,哪个更有效?