SpringCloud讓微服務實現指定程式呼叫
阿新 • • 發佈:2020-06-28
我們在做微服務時,有時候需要將微服務做一些限制,比如只能我們自己的服務呼叫,不能通過瀏覽器直接呼叫等。
我們可以使用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開頭)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援指令碼之