1. 程式人生 > 程式設計 >SpringCloud讓微服務實現指定程式呼叫

SpringCloud讓微服務實現指定程式呼叫

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

我們可以使用spring cloud sleuth,在應用呼叫微服務時通過Tracer產生一個traceId,並通過request設定到header裡面,

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

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

程式碼詳見github

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

一. 應用呼叫微服務,產生traceId

1. feign呼叫微服務,指定配置

SpringCloud讓微服務實現指定程式呼叫

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

SpringCloud讓微服務實現指定程式呼叫

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

SpringCloud讓微服務實現指定程式呼叫

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

1. 攔截器判斷traceId

SpringCloud讓微服務實現指定程式呼叫

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

SpringCloud讓微服務實現指定程式呼叫

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援指令碼之