dubbo和feign?
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),江寧企業(yè)網(wǎng)站建設(shè),江寧品牌網(wǎng)站建設(shè),網(wǎng)站定制,江寧網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,江寧網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。客戶端調(diào)用服務(wù)端時(shí),@Autowire注解在客戶端service中注入了一個(gè)代理類(通過掃描@EnableFeignClients和@EnableFeignClient利用JDK動態(tài)代理生成的,并注冊到了IOC容器),我們在service中調(diào)用服務(wù)端的eat()方法,其實(shí)是代理類在調(diào)用,在執(zhí)行方法eat的時(shí)候其實(shí)在觸發(fā)代理類中的invoke方法,invoke方法中就要新建一個(gè)Socket連接,服務(wù)端也要開一個(gè)Socket連接,請求頭協(xié)議可以為http或者dubbo,請求體中包含了實(shí)現(xiàn)類名稱、方法名稱、方法參數(shù),服務(wù)端接收到請求頭+請求體之后,dubbo是通過反射,調(diào)用本地類的方法,拿到返回值通過Socket返回,而feign直接調(diào)用本地服務(wù)接口通過Socket返回了。對于feign,服務(wù)端會將對外提供的接口打成jar包,提供給客戶端,j注冊中心地址和端口++ar包中包含方法名和Url,如@ReqeastMapping(/service/eat),所以feign底層通過RestTemplater.getForObject方法就可以在invoke調(diào)用了。
總結(jié):
1、使用JDK動態(tài)代理為接口創(chuàng)建代理對象
2、執(zhí)行接口的方法時(shí),調(diào)用代理對象的invoker方法
3、讀取FeignClient的注解得到要調(diào)用的遠(yuǎn)程服務(wù)的接口
4、通過Ribbon負(fù)載均衡得到一個(gè)要調(diào)用的服務(wù)提供者
5、使用HttpURLConnection發(fā)起請求,得到響應(yīng)
3.Skywalking在天上跑,不侵入原有代碼,任何服務(wù)都不需要該,任何依賴都不需要加。是通過agent這種模式,如在啟動java項(xiàng)目的時(shí)候java -jar -agent 后面可以加個(gè)agent探針,
Skywalking啟動之后,相當(dāng)于從代理層Agent監(jiān)聽到class的運(yùn)行,所有的請求都會走這個(gè)agent代理器,如Idea中Jrebel熱部署,就是通過agent監(jiān)聽到代碼的變化,然后重新啟動的。
主要作用就是看哪個(gè)服務(wù)發(fā)生異常,請求時(shí)間較慢。
就較為輕量級,用于收集多少人請求,和請求時(shí)間。
簡單帶過即可,不是很重要
普羅米修斯是硬件監(jiān)控。
日志格式:servername(服務(wù)名)+traceId(全局的)+spanId(服務(wù)的)
日志收集比率,開發(fā)時(shí)為1,上線時(shí)為0.1,因?yàn)殒溌纷粉櫉o需完整日志10%即可,完整日志已經(jīng)保存在了logback文件。
4.SpringCloudConfig1.Nacos是CP還是AP?
首先Nacos分為注冊中心和配置中心,CP和AP是針對于注冊中心的,配置中心底層是用的mysql進(jìn)行存儲的。
Nacos注冊中心可以為CP也可以為AP,如果注冊的節(jié)點(diǎn)為臨時(shí)節(jié)點(diǎn)(zookeeper分布式鎖),那么為CP,如果注冊的是非臨時(shí)節(jié)點(diǎn),那么即為AP。我認(rèn)為應(yīng)該為AP,因?yàn)殡S著服務(wù)的增加,可能會面臨頻繁的上下線,而如果是CP的話,要等集群的注冊中心數(shù)據(jù)達(dá)到一致后才會注冊和移除,比較耗時(shí),會影響到服務(wù)發(fā)現(xiàn)的效率和服務(wù)調(diào)用。如果是AP的話,不管集群中的節(jié)點(diǎn)數(shù)據(jù)是否一致,正常注冊和下線服務(wù),注冊中心壓力就會小一點(diǎn),保證最終一致性即可。Zk保證的就是CP,但是如果大多數(shù)節(jié)點(diǎn)掛了的話,ZK也是不能提供服務(wù)的。
2.Nacos動態(tài)更新配置的原理
首先Nacos采用的是長輪詢的方式,就是Nacos的Client端會向服務(wù)端發(fā)起查詢配置更新的請求。
長輪詢就是client創(chuàng)建連接,發(fā)起一次輪詢請求,查詢服務(wù)端是否有配置更新,這個(gè)連接會一直打開,直到服務(wù)端有配置更新和超時(shí)返回。
nacos客戶端要獲取服務(wù)端的配置更新,就要將本地緩存與服務(wù)器配置文件進(jìn)行比較,一旦發(fā)現(xiàn)有更新,就會去更新本地緩存CacheData。在比較的過程中,由于配置項(xiàng)較多,為了減少網(wǎng)絡(luò)通信數(shù)據(jù)量,將對比項(xiàng)進(jìn)行了分片,每個(gè)分片大小為3000項(xiàng),客戶端將每個(gè)分片的key和對應(yīng)Value的MD5值拼接為一個(gè)字符串發(fā)給服務(wù)端,服務(wù)端將存在更新的key返回給客戶端,客戶端拿到這些key就會調(diào)用服務(wù)端獲取Value值,然后去更新本地緩存。
這個(gè)優(yōu)化的核心目的,就是減少網(wǎng)絡(luò)通信數(shù)據(jù)包的大小,把一次大數(shù)據(jù)包拆成多個(gè)小數(shù)據(jù)包的通信,雖然會增加次數(shù),但是會提高性能。
加上長連接的方式,減少了輪詢次數(shù),實(shí)現(xiàn)了動態(tài)更新的功能。
3.Nacos心跳機(jī)制
首先啟動Nacos服務(wù), 當(dāng)微服務(wù)1啟動時(shí),
第一步:會先向nacos建立連接,并發(fā)送一個(gè)心跳請求(5S一次),為了證明我們的網(wǎng)絡(luò)和服務(wù)是OK的,nacos會將我們發(fā)送的心跳時(shí)間記錄下來,?
第二步:微服務(wù)1向Nacos服務(wù)注冊,
如果微服務(wù)1掛了,微服務(wù)2要想從nacos上發(fā)現(xiàn)微服務(wù)1的信息,怎么辦呢?
nacos客戶有個(gè)定時(shí)線程池,
不斷的輪詢,判斷當(dāng)前系統(tǒng)時(shí)間減去最新一次心跳時(shí)間,如果大于15S,nacos任務(wù)微服務(wù)1不健康,如果線程感知到時(shí)間大于30S的話,就認(rèn)為服務(wù)下線了,會將微服務(wù)1下線干掉。
5.SentinelHystrix是通過線程池中的方式來協(xié)調(diào)各種降級策略的,中斷、創(chuàng)建新線程等,都比較重,越用越重,是通過計(jì)數(shù)器的算法,來計(jì)算還有多少線程可用。
sentinel是通過rateLimiter令牌桶的形式,來發(fā)放令牌,是個(gè)算法。
是以秒為單位的總數(shù)固定。
限流:
比如限制1S內(nèi)只可以獲取100個(gè)令牌桶,但是有個(gè)問題,第一秒請求時(shí),所有的請求都是在900ms時(shí)候打進(jìn)的,第二秒是是在100毫秒的時(shí)候打進(jìn)的,那就相當(dāng)于在200ms之內(nèi)打入了200個(gè)請求,顯然是不行的,會導(dǎo)致服務(wù)崩潰,內(nèi)存溢出等。
處理方式為,滑動窗口,網(wǎng)卡發(fā)送數(shù)據(jù)包也是用了滑動窗口。
滑動窗口:將1s鐘分為5段,每段為200毫秒,當(dāng)請求打進(jìn)的時(shí)候,計(jì)算前四個(gè)時(shí)間段和本身時(shí)間段內(nèi)的請求是否超過了閾值100,如果超過了,則在當(dāng)前時(shí)間段內(nèi)不請求,下一個(gè)時(shí)間段再請求。
6.響應(yīng)式Web你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站標(biāo)題:2022-SpringCloud-創(chuàng)新互聯(lián)
分享路徑:http://www.rwnh.cn/article2/cepooc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站排名、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)站維護(hù)、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)