Apache Camel HTTP组件计时器dockerization

时间:2018-08-10 09:16:25

标签: apache docker spring-boot apache-camel

我要实现的目标是泊坞化一个使用骆驼定期检查外部休息端点并将其接收的数据插入数据库的spring boot应用程序。我目前使用计时器来触发路由。

但是我需要对其进行泊坞化,这将产生一些问题,例如触发从所有容器发出的路线。

我知道可以使用cron表达式的调度程序,但是同样会从所有容器中触发它。

正在寻求专家的一些设计见解。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您将任何数据库用作应用程序的一部分,则任务将很简单。创建一个表,并在列status中放置一个条目,分别为runningcompleted。在访问外部api之前,请先通过scheduler来检查数据库中的status。如果是running,则中止呼叫,或者状态为completed,请运行作业并呼叫外部服务。您还可以使用in-memorymemcache之类的redis缓存来替代数据库。

最好的方法是通过某些外部触发器(例如control-M中的CloudwatchAWS来触发所有容器的负载均衡器,这样请求将被定向到一个容器,因此不会进行其他调用对外部api进行。否则您必须使用容器间通信,这将增加应用程序的复杂性。