Curator 重連策略與超時
CuratorFrameworkFactory有四種重連策略,均實現了RetryPolicy介面.
zk server端timeout引數
tickTime:zk的心跳間隔(heartbeat interval),也是session timeout基本單位.單位為毫秒.
minSessionTimeout:最小超時時間,zk設定的預設值為2*tickTime.
maxSessionTimeout:最大超時時間,zk設定的預設值為20*tickTime.
客戶端實際的超時時間.
如果sessionTimeout的設定小於minSessionTimeout,則採用伺服器的minSessionTimeout配置
如果sessionTimeout的設定大於maxSessionTimeout,則採用伺服器的maxSessionTimeout配置.
客戶端的超時設定,不能超過伺服器端配置的範圍
Curator 的客戶端超時設定.
CuratorFrameworkFactory.newClient
連線超時15s
Session超時60s
Curator 四種重連策略
1.RetryUntilElapsed(int maxElapsedTimeMs, int sleepMsBetweenRetries)
以sleepMsBetweenRetries的間隔重連,直到超過maxElapsedTimeMs的時間設定
2.RetryNTimes(int n, int sleepMsBetweenRetries)
指定重連次數
3.RetryOneTime(int sleepMsBetweenRetry)
重連一次,簡單粗暴
4.ExponentialBackoffRetry
ExponentialBackoffRetry(int baseSleepTimeMs, int maxRetries)
ExponentialBackoffRetry(int baseSleepTimeMs, int maxRetries, int maxSleepMs)
時間間隔 = baseSleepTimeMs * Math.max(1, random.nextInt(1 << (retryCount + 1)))
zk server端timeout引數
tickTime:zk的心跳間隔(heartbeat interval),也是session timeout基本單位.單位為毫秒.
minSessionTimeout:最小超時時間,zk設定的預設值為2*tickTime.
maxSessionTimeout:最大超時時間,zk設定的預設值為20*tickTime.
客戶端實際的超時時間.
- int minSessionTimeout = zk.getMinSessionTimeout();
- if (sessionTimeout < minSessionTimeout) {
- sessionTimeout = minSessionTimeout;
- }
- int maxSessionTimeout = zk.getMaxSessionTimeout();
- if (sessionTimeout > maxSessionTimeout) {
- sessionTimeout = maxSessionTimeout;
- }
如果sessionTimeout的設定小於minSessionTimeout,則採用伺服器的minSessionTimeout配置
如果sessionTimeout的設定大於maxSessionTimeout,則採用伺服器的maxSessionTimeout配置.
客戶端的超時設定,不能超過伺服器端配置的範圍
Curator 的客戶端超時設定.
CuratorFrameworkFactory.newClient
連線超時15s
Session超時60s
- private static final int DEFAULT_SESSION_TIMEOUT_MS = Integer.getInteger("curator-default-session-timeout", 60 * 1000);
- private static final int DEFAULT_CONNECTION_TIMEOUT_MS = Integer.getInteger("curator-default-connection-timeout", 15 * 1000);
- public static CuratorFramework newClient(String connectString, RetryPolicy retryPolicy)
- {
- return newClient(connectString, DEFAULT_SESSION_TIMEOUT_MS, DEFAULT_CONNECTION_TIMEOUT_MS, retryPolicy);
- }
Curator 四種重連策略
1.RetryUntilElapsed(int maxElapsedTimeMs, int sleepMsBetweenRetries)
以sleepMsBetweenRetries的間隔重連,直到超過maxElapsedTimeMs的時間設定
2.RetryNTimes(int n, int sleepMsBetweenRetries)
指定重連次數
3.RetryOneTime(int sleepMsBetweenRetry)
重連一次,簡單粗暴
4.ExponentialBackoffRetry
ExponentialBackoffRetry(int baseSleepTimeMs, int maxRetries)
ExponentialBackoffRetry(int baseSleepTimeMs, int maxRetries, int maxSleepMs)
時間間隔 = baseSleepTimeMs * Math.max(1, random.nextInt(1 << (retryCount + 1)))
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2120610/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TCPIP-------超時與重傳TCP
- Spring Cloud OpenFeign 超時與重試SpringCloud
- 將zookeeper curator與springboot專案進行整合(重點)Spring Boot
- axios超時重發iOS
- Spring Cloud Config Client 超時與重試SpringCloudclient
- zuul超時及重試配置Zuul
- JMicro微服務之超時&重試微服務
- PostgreSQL 連線 超時異常SQL
- win10 超連結你的組織策略阻止怎麼辦 win10組策略禁止超連結怎麼解決Win10
- Curator API使用API
- NIO中如何實現超時重傳?
- TNS-12170 連線超時
- ssh連線超時的解決
- Redis連線超時排查實錄Redis
- python 連線 mongo 資料庫連線超時PythonGo資料庫
- 超時重試思考-非冪等請求
- 應用連線超時排查DB MySQLMySql
- 解決代理連線超時問題
- boost::asio設定同步連線超時
- ORA-12170:TNS:連線超時
- ORA-12170: TNS: 連線超時
- ORA-12170 TNS 連線超時
- 前後端分離——token超時重新整理策略後端
- FileZilla 連結伺服器提示 20 秒連線超時伺服器
- 關於在執行java連線MongoDB時遇到的連線超時問題JavaMongoDB
- Apache Curator 操作Zookeeper apiApacheAPI
- 爬蟲去重策略爬蟲
- HTTP呼叫超時咋辦?重複請求又如何?HTTP
- [轉帖]【tcp】關於tcp 超時重傳次數TCP
- 今天,你遇到redis線上連線超時了嗎?Redis
- (轉)hbase master掛掉-zookeeper連線超時原因AST
- .net 資料庫連線池超時問題資料庫
- TextView:超連結的樣式與跳轉TextView
- 網路裝置重啟造成rac監聽故障連線資料庫報ora-12170:TNS:連線超時的錯誤資料庫
- Flink的重啟策略
- 使用外連線時應注意重複的問題
- pymysql 處理 連線超時最好的解決方案MySql
- 使用secureCRT連線伺服器,防超時斷開Securecrt伺服器