中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

太原網(wǎng)站建設(shè)網(wǎng)站推廣的渠道有

太原網(wǎng)站建設(shè),網(wǎng)站推廣的渠道有,云南網(wǎng)站建設(shè)公司,做網(wǎng)站找誰(shuí)回顧 在前面的章節(jié)中:通過(guò)闡述sentinel簡(jiǎn)單使用、滑動(dòng)窗口、核心流程源碼分析把sentinel限流、熔斷等主要功能說(shuō)明清楚了,但我們?cè)趯?shí)際使用的過(guò)程中,不可能通過(guò)硬編碼的方式設(shè)置規(guī)則,且規(guī)則也沒(méi)法直觀的維護(hù),為此肯定…

回顧

在前面的章節(jié)中:通過(guò)闡述sentinel簡(jiǎn)單使用、滑動(dòng)窗口、核心流程源碼分析把sentinel限流、熔斷等主要功能說(shuō)明清楚了,但我們?cè)趯?shí)際使用的過(guò)程中,不可能通過(guò)硬編碼的方式設(shè)置規(guī)則,且規(guī)則也沒(méi)法直觀的維護(hù),為此肯定是需要通過(guò)sentinel dashboard維護(hù)限流熔斷規(guī)則

交互橋梁

在前面的章節(jié)中,也提到過(guò)。如果在單獨(dú)的springboot項(xiàng)目中,想要和dashbaord做交互,需要引入如下依賴:

該依賴就是和dashbaord實(shí)現(xiàn)數(shù)據(jù)交互的橋梁,查看該模塊的代碼包情況:

其中重點(diǎn)需要關(guān)注的是:?

com.alibaba.csp.sentinel.transport.command.SimpleHttpCommandCenter 服務(wù)端命令接收

com.alibaba.csp.sentinel.transport.heartbeat.SimpleHttpHeartbeatSender 維護(hù)心跳

源碼分析

應(yīng)用端

心跳:

? ? ? ??

在?SimpleHttpHeartbeatSender中有看到發(fā)送心跳的代碼。但是:心跳是需要一直間隔發(fā)送的,此處只有發(fā)送的邏輯,未見(jiàn)間隔發(fā)送邏輯

所以肯定有個(gè)地方調(diào)用了該sendHeartbeat方法,跟蹤代碼,發(fā)現(xiàn)在:HeartbeatSenderInitFunc中有定時(shí)調(diào)度該方法:

?再詳細(xì)的分析調(diào)用接口地址和uri

?uri:

?至此,應(yīng)用client到sentinel dashboard的心跳部分已經(jīng)分析完成,既:

HeartbeartSenderInitFunc中定時(shí)調(diào)度HeartbeartSender#sendHeartbeat方法完成心跳功能,dashbaord的ip和端口是由應(yīng)用啟動(dòng)時(shí):-Dcsp.sentinel.dashboard.server參數(shù)指定的(具體的屬性邏輯可以自己跟蹤一下源碼)

應(yīng)用client端和dashbaord的命令交互

試想一下,在dashbaord上怎么獲取到對(duì)應(yīng)接入的應(yīng)用的限流、熔斷配置規(guī)則的?

在com.alibaba.csp.sentinel.transport.command.SimpleHttpCommandCenter中可以看到大量的關(guān)于網(wǎng)絡(luò)通信的代碼:

?

從代碼中可以看到,CommandCentre中啟動(dòng)了一個(gè)本地服務(wù)器,用于監(jiān)聽(tīng)連接。同樣的,跟蹤

com.alibaba.csp.sentinel.transport.command.SimpleHttpCommandCenter#start方法,發(fā)現(xiàn)在:

com.alibaba.csp.sentinel.transport.init.CommandCenterInitFunc#init方法完成初始化和調(diào)用,同時(shí)注意到:在正式調(diào)用start之前,做了一些初始化操作

?處理器和請(qǐng)求類型的映射關(guān)系:

?

?當(dāng)接收到來(lái)自dashboard的http請(qǐng)求后會(huì)組裝一個(gè)HttpEventTask,交由線程池處理:

最后根據(jù)請(qǐng)求類型,分配不同的處理完成處理過(guò)程:

以上是命令中心的核心邏輯。總結(jié)一下就是:

com.alibaba.csp.sentinel.transport.init.CommandCenterInitFunc#init調(diào)用com.alibaba.csp.sentinel.transport.command.SimpleHttpCommandCenter#beforeStart方法完成處理器注解名稱和處理器的映射列表,然后啟動(dòng)BIO(依賴不同服務(wù)類型不同)的服務(wù)器監(jiān)聽(tīng)

dashboard端

在應(yīng)用client端有2個(gè)待處理的問(wèn)題:

1 應(yīng)用client發(fā)送的心跳到dashbaord如何處理的

2 client啟動(dòng)的tpc服務(wù)器,dashboard是怎么連接并發(fā)送請(qǐng)求到應(yīng)用client端的?

心跳響應(yīng)

在上面的client段心跳中,有提到過(guò),請(qǐng)求的uri是:/registry/machine,在dashboard的源碼中查找到對(duì)應(yīng)的http接口:

接收到心跳信息之后是將數(shù)據(jù)存儲(chǔ)在appManagement中

而AppManagement是MachineDiscovery的一個(gè)裝飾器,真正干活的是:?

com.alibaba.csp.sentinel.dashboard.discovery.SimpleMachineDiscovery

?到這里心跳的邏輯已經(jīng)梳理完成:

應(yīng)用client端通過(guò)HeartbeatSenderInitFunc啟動(dòng)定時(shí)調(diào)度任務(wù)調(diào)用SimpleHttpHeartbeatSender#sendHeartbeat

方法往dashboard的/registry/machine接口請(qǐng)求,最終數(shù)據(jù)存儲(chǔ)在com.alibaba.csp.sentinel.dashboard.discovery.SimpleMachineDiscovery的一個(gè)ConcurrentMap中完成數(shù)據(jù)統(tǒng)計(jì)

dashboard請(qǐng)求client的規(guī)則數(shù)據(jù)

通過(guò)跟蹤dashboard的頁(yè)面請(qǐng)求規(guī)則接口:/v2/flow/rules&/v1/flow/rules

?最終數(shù)據(jù)請(qǐng)求委托給了:com.alibaba.csp.sentinel.dashboard.rule.FlowRuleApiProvider

?而FlowRuleApiProvider最終真正獲取數(shù)據(jù)是委托給了SentinelApiClient直連到對(duì)應(yīng)的機(jī)器上完成規(guī)則內(nèi)容獲取的

一路跟蹤最后來(lái)到發(fā)起http請(qǐng)求的入口:

? 到此,dashbaord想應(yīng)用client端發(fā)送命令的過(guò)程總結(jié)一下:

CommandCenterInitFunc在初始化時(shí),調(diào)用SimpleHttpCommandCenter#beforeStart方法完成處理器的初始化,最終組裝成一個(gè)以處理器的CommandMapping注解的name屬性為key,處理器為value的map對(duì)象。然后調(diào)用SimpleHttpCommandCenter#start()方法啟動(dòng)一個(gè)tcp服務(wù)器,監(jiān)聽(tīng)tcp請(qǐng)求。dashbaord在獲取規(guī)則內(nèi)容時(shí),通過(guò)com.alibaba.csp.sentinel.dashboard.client.SentinelApiClient向應(yīng)用client端發(fā)起http請(qǐng)求(應(yīng)用client端的ip和端口通過(guò)心跳數(shù)據(jù)獲取),完成整個(gè)過(guò)程

填坑

在第一章關(guān)于sentinel的簡(jiǎn)單使用中,有提到一個(gè)問(wèn)題:為什么應(yīng)用client端已經(jīng)添加依賴,添加啟動(dòng)命令,并且啟動(dòng)成功之后,在dashboard的面板上無(wú)法看到對(duì)應(yīng)的應(yīng)用信息:

?而且在做源碼分析的時(shí)候也留了個(gè)坑:

?在上面分析應(yīng)用client端心跳時(shí)有提到:HeartbeatSenderInitFunc#init方法會(huì)啟動(dòng)定時(shí)調(diào)度功能完成心跳注冊(cè)。而Env的這段靜態(tài)代碼塊就是實(shí)現(xiàn)該功能的:

這里就是通過(guò)SPI機(jī)制,讀取配置中實(shí)現(xiàn)了InitFunc接口的類完成初始化任務(wù)。間接的完成HeartbeatSenderInitFunc的處理化,從而往dashboard注冊(cè)心跳。

而Env要運(yùn)行靜態(tài)代碼塊,是在SphU#entry方法觸發(fā)的。 當(dāng)然,如果你在啟動(dòng)應(yīng)用時(shí)初始化一下Env類,肯定也是可以和dashboard完成心跳注冊(cè)的:

以上:就是sentinel和dashbaord完成交互的全過(guò)程。關(guān)于sentinel的集群限流和數(shù)據(jù)持久化的問(wèn)題,在關(guān)于sentinel運(yùn)用的第五章中會(huì)完全解釋。

創(chuàng)作不易,點(diǎn)贊、收藏、關(guān)注!

http://www.risenshineclean.com/news/49282.html

相關(guān)文章:

  • 免費(fèi)做網(wǎng)站軟件下載關(guān)鍵詞搜索網(wǎng)站
  • 網(wǎng)站建設(shè)技術(shù)實(shí)現(xiàn)難點(diǎn)云南疫情最新情況
  • 網(wǎng)站開(kāi)發(fā)是什么語(yǔ)言西安sem競(jìng)價(jià)托管
  • 域名指向另一個(gè)網(wǎng)站合肥seo推廣外包
  • 金融課程網(wǎng)站模板下載百度指數(shù)官網(wǎng)移動(dòng)版
  • 免費(fèi)行情軟件下載廣州網(wǎng)站排名優(yōu)化報(bào)價(jià)
  • 網(wǎng)站設(shè)計(jì)與開(kāi)發(fā)實(shí)例長(zhǎng)春網(wǎng)站建設(shè)方案報(bào)價(jià)
  • 北京網(wǎng)站制作應(yīng)用成都seo優(yōu)化
  • 做簡(jiǎn)歷最好的網(wǎng)站seo綜合查詢平臺(tái)
  • 數(shù)據(jù)來(lái)源于網(wǎng)站需如何做腳注小紅書(shū)關(guān)鍵詞優(yōu)化
  • cms做網(wǎng)站后臺(tái)自動(dòng)點(diǎn)擊器免費(fèi)下載
  • 襄陽(yáng)做網(wǎng)站的公司北京seo技術(shù)交流
  • 沈陽(yáng)建設(shè)網(wǎng)站服務(wù)公司seo查詢排名軟件
  • 東莞網(wǎng)站推廣哪家好信息短鏈接生成器
  • 中國(guó)微電影 網(wǎng)站開(kāi)發(fā)者百度搜索app下載
  • 搬家公司網(wǎng)站制作百度站長(zhǎng)工具怎么關(guān)閉教程視頻
  • 廣州大石附近做網(wǎng)站的公司百度首頁(yè) 百度一下
  • 教你怎么做垃圾網(wǎng)站關(guān)鍵詞排名優(yōu)化公司外包
  • 利用ionic做的網(wǎng)站夜夜草
  • 怎么申請(qǐng)一個(gè)免費(fèi)域名seo站內(nèi)優(yōu)化和站外優(yōu)化
  • 南平武夷山網(wǎng)站建設(shè)網(wǎng)絡(luò)整合營(yíng)銷4i原則是指
  • 長(zhǎng)沙網(wǎng)站開(kāi)發(fā)微聯(lián)百度搜索什么關(guān)鍵詞能搜到網(wǎng)站
  • 如何給網(wǎng)站2做推廣北京網(wǎng)絡(luò)營(yíng)銷策劃公司
  • 去國(guó)外做非法網(wǎng)站天津seo網(wǎng)絡(luò)營(yíng)銷
  • ruby網(wǎng)站開(kāi)發(fā)工程師招聘2023年免費(fèi)b站推廣大全
  • 靖邊商務(wù)網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)參考網(wǎng)站
  • 免費(fèi)推廣網(wǎng)站在線觀看網(wǎng)絡(luò)運(yùn)營(yíng)課程培訓(xùn)班
  • 網(wǎng)站建設(shè)口號(hào)seo推廣系統(tǒng)
  • 做網(wǎng)站需要提供什么網(wǎng)絡(luò)營(yíng)銷的優(yōu)勢(shì)有哪些?
  • 網(wǎng)站編輯專題怎么做東莞百度seo推廣公司