SpringCloud讓微服務(wù)實(shí)現(xiàn)指定程序調(diào)用
我們在做微服務(wù)時(shí),有時(shí)候需要將微服務(wù)做一些限制,比如只能我們自己的服務(wù)調(diào)用,不能通過瀏覽器直接調(diào)用等。
我們可以使用spring cloud sleuth,在應(yīng)用調(diào)用微服務(wù)時(shí)通過Tracer產(chǎn)生一個(gè)traceId,并通過request設(shè)置到header里面,
然后sleuth會將該traceId在整個(gè)鏈路傳遞,我們在微服務(wù)中定義一個(gè)攔截器,取到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中實(shí)例化攔截器用于生成traceId
3. 攔截器生成traceId并放到header里面
二 . 攔截器攔截到traceId并和鏈路中比較
1. 攔截器判斷traceId
2. 攔截器生效,只攔截微服務(wù)的請求(定義時(shí)定義微服務(wù)都是cloud開頭)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之
相關(guān)文章
java如何更改數(shù)據(jù)庫中的數(shù)據(jù)
這篇文章主要介紹了java如何更改數(shù)據(jù)庫中的數(shù)據(jù),修改數(shù)據(jù)庫是數(shù)據(jù)庫操作必不可少的一部分,使用Statement接口中的excuteUpdate()方法可以修改數(shù)據(jù)表中的數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2021-11-11Spring項(xiàng)目里將SQL語句寫在.sql文件中的方法
這篇文章主要介紹了Spring項(xiàng)目里如何將SQL語句寫在.sql文件中的方法,文中給出了詳細(xì)的介紹和示例代碼,相信對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,有需要的朋友們下面來一起看看吧。2017-01-01Java中instanceof關(guān)鍵字實(shí)例講解
大家好,本篇文章主要講的是Java中instanceof關(guān)鍵字實(shí)例講解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01Java靜態(tài)方法不能調(diào)用非靜態(tài)成員的原因分析
在Java中,靜態(tài)方法是屬于類的方法,而不是屬于對象的方法,它可以通過類名直接調(diào)用,無需創(chuàng)建對象實(shí)例,非靜態(tài)成員指的是類的實(shí)例變量和實(shí)例方法,它們需要通過對象實(shí)例才能訪問和調(diào)用,本文小編將和大家一起探討Java靜態(tài)方法為什么不能調(diào)用非靜態(tài)成員2023-10-10Java并發(fā)編程中的生產(chǎn)者與消費(fèi)者模型簡述
這篇文章主要介紹了Java并發(fā)編程中的生產(chǎn)者與消費(fèi)者模型簡述,多線程并發(fā)是Java編程中最終要的部分之一,需要的朋友可以參考下2015-07-07Java算法之BFS,DFS,動態(tài)規(guī)劃和貪心算法的實(shí)現(xiàn)
廣度優(yōu)先搜索(BFS)和深度優(yōu)先搜索(DFS)是圖遍歷算法中最常見的兩種算法,主要用于解決搜索和遍歷問題。動態(tài)規(guī)劃和貪心算法則用來解決優(yōu)化問題。本文就來看看這些算法的具體實(shí)現(xiàn)吧2023-04-04Schedule定時(shí)任務(wù)在分布式產(chǎn)生的問題詳解
這篇文章主要介紹了Schedule定時(shí)任務(wù)在分布式產(chǎn)生的問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10