java - 骆驼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
解决方案
在 java.security 中指定以指示从名称服务中成功查找名称的缓存策略。该值指定为整数以指示缓存成功查找的秒数。-1 值表示“永远缓存”。默认行为是在安装安全管理器时永久缓存,并在未安装安全管理器时缓存实现特定的时间段。
推荐阅读
- javascript - 如何替换香草JS上的类名?
- java - 如何在 spring 批处理作业(xml 或 csv)中访问读取的原始数据
- botframework - MS Bot Framework 类名称和标签 ID 已更改
- angular - Angular 9 项目在生产环境中不起作用
- amazon-web-services - serverless-s3-sync 只是将特定文件夹同步到 s3
- django - 创建一个 Django 模型,该模型存储从另一个模型中随机选择的对象列表
- git - 如何在 Intellij Idea 的“版本控制”中返回“控制台”选项卡?
- sql - 在双引号之间替换字符串中的字符
- c# - 当我单击一个按钮时,Unity 会激活另一个按钮(BUG)c#
- python - 基于分隔字符串从长字符串中提取值