溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Rainbond網(wǎng)絡(luò)治理插件ServiceMesh怎么用

發(fā)布時間:2022-04-21 09:07:49 來源:億速云 閱讀:237 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Rainbond網(wǎng)絡(luò)治理插件ServiceMesh怎么用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習“Rainbond網(wǎng)絡(luò)治理插件ServiceMesh怎么用”吧!

ServiceMesh網(wǎng)絡(luò)治理插件

5.1.5版本后,Rainbond默認提供了綜合網(wǎng)絡(luò)治理插件(同時處理入站和出站網(wǎng)絡(luò))和出站網(wǎng)絡(luò)治理插件兩個插件可用。 網(wǎng)絡(luò)治理插件工作在與業(yè)務(wù)容器同一個網(wǎng)絡(luò)空間之中,可以監(jiān)聽一個分配端口,攔截入站的業(yè)務(wù)流量進行限流、斷路等處理再將流量負載到業(yè)務(wù)服務(wù)的實際監(jiān)聽端口之上。

同時也可以工作在出站方向,業(yè)務(wù)服務(wù)需要訪問上游服務(wù)時,通過訪問本地出站治理插件監(jiān)聽的端口,進行流量路由、斷路、安全驗證等處理,再將流量負載到尚有服務(wù)的主機之上。 

Rainbond網(wǎng)絡(luò)治理插件ServiceMesh怎么用

對于插件的開發(fā)者來說需要關(guān)注如下兩點:

  • 入站治理插件需要根據(jù)系統(tǒng)分配的端口轉(zhuǎn)發(fā)規(guī)則進行流量轉(zhuǎn)發(fā),比如UI服務(wù)本身是監(jiān)聽的8080端口,這是不能改變的,但是我們可以改變從邊緣網(wǎng)關(guān)訪問UI服務(wù)時的訪問端口,因此Rainbond應(yīng)用運行時為動態(tài)為入站網(wǎng)絡(luò)治理插件生成監(jiān)聽端口對,比如下述配置:

"base_ports":[
      {
          "service_alias":"gre484d9",
          "service_id":"9703228e9b42cde3e3a72f4826e484d9",
          "port":8080,
          "listen_port":65301,
          "protocol":"http",
          "options":{
              "LIMIT_DOMAIN":"limit.common",
              "OPEN_LIMIT":"NO"
          }
      }
  ]

插件運行時會自動注入DISCOVER_URL變量,通過此變量值的地址可以動態(tài)獲取到如上的配置信息,入站網(wǎng)絡(luò)治理插件必須通過以上配置來監(jiān)聽65301端口,將流量負載到127.0.0.1:8080端口。

  • 出站治理插件不存在端口映射的問題,出站治理插件根據(jù)下屬的動態(tài)配置信息生成本地監(jiān)聽負載到遠程地址。

"base_services":[
        {
            "service_alias":"gre484d9",
            "service_id":"9703228e9b42cde3e3a72f4826e484d9",
            "depend_service_alias":"grcff92d",
            "depend_service_id":"c81923991ff2428082a5d9d478cff92d",
            "port":5000,
            "protocol":"http",
            "options":{
                "BaseEjectionTimeMS":"30000",
                "ConsecutiveErrors":"5",
                "Domains":"todos",
                "Headers":"",
                "IntervalMS":"10",
                "MaxActiveRetries":"5",
                "MaxConnections":"10",
                "MaxEjectionPercent":"20",
                "MaxPendingRequests":"1024",
                "MaxRequests":"1024",
                "MaxRequestsPerConnection":"",
                "PROXY":"YES",
                "Prefix":"/",
                "Weight":"80"
            }
        }
]

使用上述原生配置發(fā)現(xiàn)和服務(wù)發(fā)現(xiàn)來讓自定義插件工作,插件層面需要做較多的數(shù)據(jù)適配工作。Rainbond同時提供了基于envoy XDS(grpc)規(guī)范的動態(tài)配置發(fā)現(xiàn)服務(wù),在插件中通過XDS_HOST_IP XDS_HOST_PORT兩個變量來獲取XDS服務(wù)的地址。

對用用戶來說插件層的網(wǎng)絡(luò)治理對于業(yè)務(wù)層是完全透明的,所有有依賴關(guān)系的分布式服務(wù)類似于運行同一臺主機一樣。

插件實踐

綜合網(wǎng)絡(luò)治理插件

默認提供的綜合網(wǎng)絡(luò)治理插件基于envoy 1.9.0實現(xiàn),綜合網(wǎng)絡(luò)插件同時實現(xiàn)了入站方向的治理和出站方向的治理,提供以下配置參數(shù):

入站方向

全局限流:

  • OPEN_LIMIT 開啟全局限流功能,全局限流功能依賴于第三方的限流服務(wù),比如 ratelimit , 當前服務(wù)需要依賴ratelimit服務(wù),并設(shè)置RATE_LIMIT_SERVER_HOST和RATE_LIMIT_SERVER_PORT環(huán)境變量。

  • LIMIT_DOMAIN 限流鏈路的domain key,與全局限流服務(wù)的配置對應(yīng)

斷路:

  • MaxConnections 最大連接數(shù),Http協(xié)議時僅適用于http1.1,TCP協(xié)議時設(shè)置最大TCP連接數(shù)。

  • MaxRequests 并發(fā)請求數(shù),適用于HTTP協(xié)議

  • MaxPendingRequests 最大等待請求數(shù),適用于HTTP協(xié)議

  • MaxActiveRetries 最大重試次數(shù),適用于HTTP協(xié)議

  • MaxRequestsPerConnection 單連接最大請求數(shù),適用于HTTP協(xié)議,支持http1.1 和http2

出站方向

動態(tài)路由(HTTP協(xié)議):

Domains

請求域名,對于http協(xié)議的上游服務(wù),支持基于域名路由并復(fù)用80端口。

Prefix

請求Path路徑的前綴,基于前綴來路由不同的上游服務(wù)。

Headers

請求頭,基于請求頭的路由不同的上游服務(wù)。

Weight

權(quán)重,基于不同的權(quán)重來將流量分發(fā)到不同的上游服務(wù)。

斷路(面向連接):

  • MaxConnections 最大連接數(shù),Http協(xié)議時僅適用于http1.1,TCP協(xié)議時設(shè)置最大TCP連接數(shù)。

  • MaxRequests 并發(fā)請求數(shù),適用于HTTP協(xié)議

  • MaxPendingRequests 最大等待請求數(shù),適用于HTTP協(xié)議

  • MaxActiveRetries 最大重試次數(shù),適用于HTTP協(xié)議

  • MaxRequestsPerConnection 單連接最大請求數(shù),適用于HTTP協(xié)議,支持http1.1 和http2

斷路(面向上游主機):

  • ConsecutiveErrors 上游服務(wù)主機發(fā)生500錯誤的被逐出的次數(shù)。

  • BaseEjectionTimeMS 主機被逐出的基礎(chǔ)時間,及第一次被逐出的時間,如果被逐出n次,時間則為n*BaseEjectionTimeMS

  • MaxEjectionPercent 被逐出主機的最大比例,如果設(shè)置為100則允許全量逐出。

  • IntervalMS 分析主機是否應(yīng)該被逐出的時間間隔

  • HealthyPanicThreshold 進入恐慌模式的比例,默認是50

出站網(wǎng)絡(luò)治理插件

當服務(wù)無需使用入站方向的治理功能時,可只使用出站治理插件,配置參數(shù)與綜合治理插件的出站方向一致。

感謝各位的閱讀,以上就是“Rainbond網(wǎng)絡(luò)治理插件ServiceMesh怎么用”的內(nèi)容了,經(jīng)過本文的學(xué)習后,相信大家對Rainbond網(wǎng)絡(luò)治理插件ServiceMesh怎么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI