zuul集成ribbon完成服務通信和負載均衡

目錄

Zuul2服務通信

超時相關

默認超時配置

自定義超時配置

負載均衡


Zuul2服務通信

描述:zuul2通過Ribbon完成客戶端負載均衡以及與服務器群集進行通信。

zuul2的通信是集成Ribbon實現的,在Origin中集成Ribbon基本配置(例如IClientConfig)以完成功能接入,在loadbanace層將ribbion與netty結合用來抉擇下層客戶端服務器。

zuul2集成ribbon core結構圖:

zuul2集成 ribbon loadbalanacer結構圖:

?

超時相關

默認超時配置

  • 默認連接超時時間ReadTimeout為2S
  • 默認讀超時時間ConnectTimeout為5S
  • 超時后的默認重試次數MaxAutoRetriesNextServer為1次?(它使用MaxAutoRetriesNextServer,應該與ribbon的NIWSServerListClassName相關參數有關系,同時在zuul2官網wiki有相關描述指定本配置控制重試)

可以在ribbon源碼中找到相應配置信息:

自定義超時配置

#指定全局連接超時ConnectTimeout配置
ribbon.ConnectTimeout=100#指定全局讀超時ReadTimeout配置
ribbon.ReadTimeout=1000#指定全局重試配置
ribbon.MaxAutoRetriesNextServer=0#指定origin連接超時ConnectTimeout配置(覆蓋全局)
<origin>.ribbon.ConnectTimeout=100#指定origin讀超時ReadTimeout配置(覆蓋全局)
<origin>.ribbon.ReadTimeout=10000#指定origin重試配置(覆蓋全局)
<origin>.ribbon.MaxAutoRetriesNextServer=1

?ribbon相關配置項及默認值:https://github.com/Netflix/ribbon/blob/master/ribbon-core/src/main/java/com/netflix/client/config/CommonClientConfigKey.java

負載均衡

ribbon負載均衡的七種算法

RandomRule:隨機算法實現RoundRobinRule:輪詢負載均衡策略,依次輪詢所有可用服務器列表,遇到第一個可用的即返回RetryRule :先按照RoundRobinRule策略獲取服務,如果獲取服務失敗會在指定時間內重試AvaliabilityFilteringRule: 過濾掉那些因為一直連接失敗的被標記為circuit tripped的后端server,并過濾掉那些高并發的的后端server(active connections 超過配置的閾值) BestAvailableRule :會先過濾掉由于多次訪問故障二處于斷路器跳閘狀態的服務,然后選擇一個并發量最小的服務WeightedResponseTimeRule: 根據響應時間分配一個weight,響應時間越長,weight越小,被選中的可能性越低ZoneAvoidanceRule: 復合判斷server所在區域的性能和server的可用性選擇server

后續將會持續完善ribbon、制定ribbon負載均衡算法以滿足流量調度需求。

?


---------------------
作者:xbl丶
來源:CSDN
原文:https://blog.csdn.net/qq_37822090/article/details/114360518
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/283985.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/283985.shtml
英文地址,請注明出處:http://en.pswp.cn/news/283985.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

時任上海來伊份互聯網事業群總裁王戈鈞 :傳統企業(線上+線下)移動互聯網改造...

2017年12月22日-23日&#xff0c;第13屆信息化領袖峰會暨2017中國數字化貢獻人物頒獎盛典在上海盛大開幕。本次峰會由上海市經濟和信息化委員會指導&#xff0c;上海市國有資產信息中心、上海市計算機用戶協會、上海市信息服務業行業協會、上海大數據聯盟、上海市高等教育學會支…

Linux系統時間\硬件時間(date、tzselect、clock、hwclock、ntpdate)

1、系統時間和硬件時間 在Linux中有硬件時鐘與系統時鐘兩種時鐘。硬件時鐘是指主機板上的時鐘設備&#xff0c;也就是通常可在BIOS畫面設定的時鐘。系統時鐘則是指kernel中的時鐘。所有Linux相關指令與函數都是讀取系統時鐘的設定。因為存在兩種不同的時鐘&#xff0c;那么它們…

C#------如何判斷輸入的是否為純數字

private void Btn_OK_Click(object sender, EventArgs e){IDormitoryAdminCardService aservice new DormitoryAdminCardService();string text this.CardNoEdit.Text;//判斷是否輸入的是純數字string pattern "^[0-9]*$";Regex regex new Regex(pattern);if (re…

【.NET6+Modbus】Modbus TCP協議解析、仿真環境以及基于.NET實現基礎通信

接下來的內容&#xff0c;我會以從頭開發一個簡單的基于modbus tcp通信的案例&#xff0c;來實現一個基礎的通信功能。有關環境&#xff1a;開發環境&#xff1a;VS 2022企業版運行環境&#xff1a;Win 10 專業版.NET 環境版本&#xff1a;.NET 6【備注】 源碼在文末 1、新建一…

源碼深度剖析Eureka與Ribbon服務發現原理

本文基于 spring cloud dalston&#xff0c;同時文章較長&#xff0c;請選擇舒服姿勢進行閱讀。 Eureka 與 Ribbon 是什么&#xff1f;和服務發現什么關系&#xff1f; Eureka 與 Ribbon 都是 Netflix 提供的微服務組件&#xff0c;分別用于服務注冊與發現、負載均衡。同時&a…

3月6日云棲精選夜讀:如何實現32.5萬筆/秒的交易峰值?阿里交易系統TMF2.0技術揭秘...

交易平臺遇到的挑戰 2017雙11&#xff0c;交易峰值達到了32.5萬筆/秒&#xff0c;這給整個交易系統帶來了非常大的挑戰。 一方面&#xff0c;系統需要支撐全集團幾十個事業部的所有交易類需求&#xff1a;要考慮如何能更快響應需求、加快發布周期&#xff1b;如何能為新小業務提…

std的find和reverse_iterator聯合使用

上代碼&#xff1a; // test2013.cpp : 定義控制臺應用程序的入口點。 //#include "stdafx.h" #include <stdlib.h> #include <stdio.h> #include<iostream> #include<vector> #include<map> #include<string> using namespace …

論如何提升學習的能力

為啥要學習如果有一件事情是能改變你自己的&#xff0c;我想這件事情必然就是學習&#xff0c;我的人生重要的轉折點也是從學習這件事情始發的&#xff0c;那么&#xff0c;我們就從這里開始。學習不僅僅是為了找到答案&#xff0c;而是為了找到方法&#xff0c;找到一個可以找…

linux下svn常用指令

windows下的TortoiseSVN是資源管理器的一個插件&#xff0c;以覆蓋圖標表示文件狀態&#xff0c;幾乎所以命令都有圖形界面支持&#xff0c;比較好用&#xff0c;這里就不多說。主要說說linux下svn的使用&#xff0c;因為linux下大部分的操作都是通過命令行來進行&#xff0c;所…

CSS布局解決方案(終結版)

前端布局非常重要的一環就是頁面框架的搭建&#xff0c;也是最基礎的一環。在頁面框架的搭建之中&#xff0c;又有居中布局、多列布局以及全局布局&#xff0c;今天我們就來總結總結前端干貨中的CSS布局。 居中布局 水平居中 1&#xff09;使用inline-blocktext-align&#xff…

基于ABP和Magicodes實現Excel導出操作

前端使用的vue-element-admin框架&#xff0c;后端使用ABP框架&#xff0c;Excel導出使用的Magicodes.IE.Excel.Abp庫。Excel導入和導出操作幾乎一樣&#xff0c;不再介紹。文本主要介紹Excel導出操作和過程中遇到的坑&#xff0c;主要是Excel文件導出后無法打開的問題。一.Mag…

消息模式在實際開發應用中的優勢

曾經.NET面試過程中經常問的一個問題是&#xff0c;如果程序集A&#xff0c;引用B &#xff0c;B 引用C&#xff0c;那么C怎么去訪問A中的方法呢。 這個問題初學.net可能一時想不出該咋處理&#xff0c;這涉及到循環引用問題。但有點經驗的可能就簡單了&#xff0c;通過委托的方…

微服務:注冊中心ZooKeeper、Eureka、Consul 、Nacos對比

前言 服務注冊中心本質上是為了解耦服務提供者和服務消費者。對于任何一個微服務&#xff0c;原則上都應存在或者支持多個提供者&#xff0c;這是由微服務的分布式屬性決定的。更進一步&#xff0c;為了支持彈性擴縮容特性&#xff0c;一個微服務的提供者的數量和分布往往是動…

MyBatis總結七:動態sql和sql片段

開發中&#xff0c;sql拼接很常見&#xff0c;所以說一下動態sql&#xff1a; 1if2chose,when,otherwise3where,set4foreach用法解析(現有一張users表 內有id username age 三個字段)&#xff1a; <!--查詢所有用戶&#xff0c;傳遞參數type&#xff0c;如果值為0&#xff0…

iOS - OC Copy 拷貝

前言 copy&#xff1a;需要先實現 NSCopying 協議&#xff0c;創建的是不可變副本。mutableCopy&#xff1a;需要實現 NSMutableCopying 協議&#xff0c;創建的是可變副本。淺拷貝&#xff1a;指針拷貝&#xff0c;源對象和副本指向的是同一個對象。對象的引用計數器 &#xf…

三.選擇結構(一)

1.if結構: if(條件){ 代碼塊 } 2.隨機產生數: int randon (int)(Math.random()*10); 3.多重if選擇結構: if(條件1){ 代碼塊1 }else if (條件2){ 代碼塊2 }else{ 代碼塊3 } 4.嵌套if選擇結構: if(條件1){ if(條件2){ 代碼塊1 }else{ 代碼塊2 } }else{ 代碼塊3 } 轉載于:https://…

為了高性能、超大規模的模型訓練,這個組合“出道”了

點擊上方藍字關注我們&#xff08;本文閱讀時間&#xff1a;3分鐘)近年來&#xff0c;在大量數據上訓練的基于 transformer 的大規模深度學習模型在多項認知任務中取得了很好的成果&#xff0c;并且被使用到一些新產品和功能背后&#xff0c;進一步增強了人類的能力。在過去五年…

SVN就是這么簡單

什么是SVN SVN全稱&#xff1a;Subversion&#xff0c;是一個開放源代碼的版本控制系統 Svn是一種集中式文件版本管理系統。集中式代碼管理的核心是服務器&#xff0c;所有開發者在開始新一天的工作之前必須從服務器獲取代碼&#xff0c;然后開發&#xff0c;最后解決沖突&…

SpringCloud必會知識點大全

為什么要學習Spring Cloud 在項目開發中隨著業務越來越多&#xff0c;導致功能之間耦合性高、開發效率低、系統運行緩慢難以維護、不穩定。微服務 架構可以解決這些問題&#xff0c;而Spring Cloud是微服務架構最流行的實現. 1.微服務 微服務架構是使用一套小服務來開發單個應用…

thinkphp3.22 多項目配置

1.index.php if(version_compare(PHP_VERSION,5.3.0,<)) die(require PHP > 5.3.0 !); // 開啟調試模式 建議開發階段開啟 部署階段注釋或者設為false define(APP_DEBUG,true); // 創建 //define(BIND_MODULE,Login); define(erp,true); // 定義應用目錄 define(APP_PAT…