首页 > 解决方案 > 骆驼IP地址缓存

问题描述

我在骆驼路线中有一个 URL,它是通过 JVM 自定义属性设置的,它保持不变。

    **<camel:to id="to-server" uri="{{serverURL}}" />**

serverURL 属性设置为站点负载均衡器地址http://xyz:8080/Server/transactionServlet

在网络层,此 URL 可以指向服务器 1 或服务器 2,无论我们使用哪个服务器,该 URL 都应该有效。

从服务器 1 切换到服务器 2 后,我们的 WAR 仍然尝试向服务器 1 发布并失败。似乎我们的 WAR 在启动时正在缓存 URL 地址(站点负载均衡器当时指向的地址),并且无法识别我们已经切换。唯一的解决方法是重新启动应用程序 WAR,此时它存储服务器 2 地址(站点负载均衡器现在指向的地址)并开始将事务发布到服务器 2。

有没有办法让骆驼不缓存 IP 地址并发布到任何服务器 URL 指向?我正在使用 Apache Camel 2.14

标签: javaapache-camel

解决方案


看看networkaddress.cache.ttl

在 java.security 中指定以指示从名称服务中成功查找名称的缓存策略。该值指定为整数以指示缓存成功查找的秒数。-1 值表示“永远缓存”。默认行为是在安装安全管理器时永久缓存,并在未安装安全管理器时缓存实现特定的时间段。


推荐阅读