SpringCloud讓微服務(wù)實現(xiàn)指定程序調(diào)用
我們在做微服務(wù)時,有時候需要將微服務(wù)做一些限制,比如只能我們自己的服務(wù)調(diào)用,不能通過瀏覽器直接調(diào)用等。
我們可以使用spring cloud sleuth,在應(yīng)用調(diào)用微服務(wù)時通過Tracer產(chǎn)生一個traceId,并通過request設(shè)置到header里面,
然后sleuth會將該traceId在整個鏈路傳遞,我們在微服務(wù)中定義一個攔截器,取到header里面的traceId并和鏈路中的traceId比較,
如果相等,則表明是我們自己的應(yīng)用調(diào)用,攔截器通過,否則這次請求被攔截
代碼詳見github
https://github.com/devinzhang0209/interview_springcloud.git
一. 應(yīng)用調(diào)用微服務(wù),產(chǎn)生traceId
1. feign調(diào)用微服務(wù),指定配置

2. FeignReqeustConfig中實例化攔截器用于生成traceId

3. 攔截器生成traceId并放到header里面

二 . 攔截器攔截到traceId并和鏈路中比較
1. 攔截器判斷traceId

2. 攔截器生效,只攔截微服務(wù)的請求(定義時定義微服務(wù)都是cloud開頭)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之
相關(guān)文章
Java Agent入門學(xué)習(xí)之動態(tài)修改代碼
這篇文章主要給大家分享了Java Agent入門學(xué)習(xí)之動態(tài)修改代碼的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-07-07
快速解決List集合add元素,添加多個對象出現(xiàn)重復(fù)的問題
這篇文章主要介紹了快速解決List集合add元素,添加多個對象出現(xiàn)重復(fù)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Springboot集成RabbitMQ死信隊列的實現(xiàn)
在大多數(shù)的MQ中間件中,都有死信隊列的概念。本文主要介紹了Springboot集成RabbitMQ死信隊列的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
java開發(fā)SpringBoot參數(shù)校驗過程示例教程
這篇文章主要為大家介紹了SpringBoot如何進(jìn)行參數(shù)校驗的過程示例詳解教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10
類似Object監(jiān)視器方法的Condition接口(詳解)
下面小編就為大家?guī)硪黄愃芆bject監(jiān)視器方法的Condition接口(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
SpringBoot中使用spring-retry 解決失敗重試調(diào)用
本文主要介紹了SpringBoot中使用spring-retry 解決失敗重試調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
java中PreparedStatement和Statement詳細(xì)講解
這篇文章主要介紹了java中PreparedStatement和Statement詳細(xì)講解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java全面細(xì)致講解Cookie與Session及kaptcha驗證碼的使用
web開發(fā)階段我們主要是瀏覽器和服務(wù)器之間來進(jìn)行交互。瀏覽器和服務(wù)器之間的交互就像人和人之間進(jìn)行交流一樣,但是對于機器來說,在一次請求之間只是會攜帶著本次請求的數(shù)據(jù)的,但是可能多次請求之間是會有聯(lián)系的,所以提供了會話機制2022-06-06

