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
- 將zookeeper curator與springboot專案進行整合(重點)Spring Boot
- Spring Cloud OpenFeign 超時與重試SpringCloud
- open feign 呼叫超時與重試
- Spring Cloud Config Client 超時與重試SpringCloudclient
- axios超時重發iOS
- zuul超時及重試配置Zuul
- PostgreSQL 連線 超時異常SQL
- win10 超連結你的組織策略阻止怎麼辦 win10組策略禁止超連結怎麼解決Win10
- JMicro微服務之超時&重試微服務
- 網路超時控制 + 指數補償法超時連線
- python 連線 mongo 資料庫連線超時PythonGo資料庫
- Redis連線超時排查實錄Redis
- Apache Curator 操作Zookeeper apiApacheAPI
- 解決代理連線超時問題
- 應用連線超時排查DB MySQLMySql
- 前後端分離——token超時重新整理策略後端
- FileZilla 連結伺服器提示 20 秒連線超時伺服器
- Apache Curator簡單介紹Apache
- VS CODE 一直斷開重連遠超連結相關問題
- 《天天連連看》隱私策略
- 爬蟲去重策略爬蟲
- 關於在執行java連線MongoDB時遇到的連線超時問題JavaMongoDB
- Springboot 連線池wait_timeout超時設定Spring BootAI
- [轉帖]【tcp】關於tcp 超時重傳次數TCP
- HTTP呼叫超時咋辦?重複請求又如何?HTTP
- 使用SpringBoot實現微服務超時重試模式 - VinsguruSpring Boot微服務模式
- ZooKeeper 分散式鎖 Curator 原始碼 02:可重入鎖重複加鎖和鎖釋放分散式原始碼
- Feign,HTTP連線超時問題SocketTimeoutException: Read timed outHTTPException
- 今天,你遇到redis線上連線超時了嗎?Redis
- 使用secureCRT連線伺服器,防超時斷開Securecrt伺服器
- pymysql 處理 連線超時最好的解決方案MySql
- Curator(ZoooKeeper客戶端)使用詳解客戶端
- 如何修改docker容器的重啟策略(重啟模式)?Docker模式
- QPS過萬,redis大量連線超時怎麼解決?Redis
- 現在是香港推動Web3的“正確時機”!將採取監管與發展並重策略!Web
- 聊一聊 Zookeeper 客戶端之 Curator客戶端
- Zookeeper分散式鎖實現Curator十一問分散式
- ln 超連結