SpringCloud 中如何使微服務只能被指定的程序調用


我們在做微服務時,有時候需要將微服務做一些限制,比如只能我們自己的服務調用,不能通過瀏覽器直接調用等。

 

具體的邏輯如下:

 

我們就可以使用spring cloud sleuth,在應用調用微服務時通過Tracer產生一個traceId,並通過request設置到header里面,

然后sleuth會將該traceId在整個鏈路傳遞,我們在微服務中定義一個攔截器,取到header里面的traceId並和鏈路中的traceId比較,

如果相等,則表明是我們自己的應用調用,攔截器通過,否則這次請求被攔截

 

代碼詳見github 

https://github.com/devinzhang0209/interview_springcloud.git

 

一. 應用調用微服務,產生traceId

 

1. feign調用微服務,指定配置

 

 

 

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

 

 

 

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

 

 

 

 

 二 . 攔截器攔截到traceId並和鏈路中比較

  1. 攔截器判斷traceId

  

 

  

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

   

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM