netty - Netty ProxyHandler - 重试连接备用主机
问题描述
如果第一台主机的连接失败,我正试图围绕什么是ProxyHandler.connect()
使用备用主机名重试的最佳方法。
我最初的想法是使用 anexceptionCaught()
并听取原因ProxyConnectException
,但后来我注意到这ProxyHandler.connect()
是期待一个承诺。我不相信我可以从我的内部获得最初的承诺exceptionCaught()
,我担心在这一点上构建一个新的承诺会破坏任何进一步的通知。
我的恐惧是没有根据的吗?我可以ProxyHandler.connect()
用新的承诺打电话吗?我是否应该重建自己的 ProxyHandler 以便可以直接在 中处理备用主机connect()
?
解决方案
@NormanMaurer 提出的附加 ChannelFutureListener 的建议适用于我的情况。不过,我对频道管道进行改造的理论并不合适。相反,我让我的通道初始化程序知道备用主机以及它是否需要使用它来构建 ProxyHandler。我相信我把一切都复杂化了,而实际上我基本上需要做@NormanMaurer 在这里建议的连接重试。
推荐阅读
- javascript - Javascript函数toLocaleString()Mongo DB不工作
- google-cloud-platform - 用于执行 Python 进程的 Google Cloud Tool
- javascript - 直接 url 在 vuejs 中不起作用,但路由器推送有效
- c# - 从上一个提示中单击 PromptDialog.Choice
- symfony - Symfoyn 3.4:FOS 用户包:覆盖控制器
- c# - 按周对 DataTable 进行分组
- angular - 允许使用路由访问 Angular 5 应用程序
- php - 脚本 php artisan 优化处理使用 laravel 5.4 返回的 post-update-cmd 事件,错误代码为 1
- javascript - 加载所有以 main.*.css 和 main.*.js 开头的 css 和 Js 文件
- elasticsearch - 从每个唯一存储桶中查找前 5 个文档