日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何获取58上真实号码_如何获取Apollo上项目下的所有namespace?

發布時間:2024/9/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何获取58上真实号码_如何获取Apollo上项目下的所有namespace? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

項目配置遷移到Apollo之后,通過統一的配置管理及配置監聽使得項目配置修改的成本大大降低。

但是,在使用Apollo的過程中,強哥也遇到一個問題:如果我們要獲取Apollo下的namespace信息需要通過ConfigServer.getConfig(String namespace)方法來獲取,但是使用這個方法的前提是我們必須知道當前項目下有哪些namespace,或者說我們只能使用我們已知的namespace。這就對我們的代碼擴展性產生了限制,假如項目已經上線,而之后我們又要新增namespace或者修改已有namespace名稱,就必須更改代碼將對應的namespace加入或修改,然后重新發布。

雖然我們不會經常修改namespace,但是,有這么一個痛點,就讓人很不舒服。而且從官方文檔中,強哥“并沒有”找到:通過項目app_id獲取到Apollo上對應的該項目下的所有namespace的方法。

那么這個問題要怎么解決呢?強哥今天就帶大家通過Apollo源碼來看看如何找到解決思路。

入手點

按常理出牌,我們先在Google中搜索一下我們的問題(這里提一下,別用百度,他么的根本定位不到要搜的點):

第一條搜索結果點進去看看,是其他開發者在github上提的issue:

我們可以看到,作者的回復是:通過open api來獲取所有namespace。也就是官方文檔中的這塊內容:

額,這個……其實,官方文檔中是有提到如何獲取項目下的所有namespace的方法的,那么強哥上面為什么說沒有找到呢?這不是啪啪啪打臉嗎?

強哥這么說是因為官網提供的方式比較雞肋。我們可以看到,需要獲取項目下所有的namespace,需要接入Apollo開放平臺。操作步驟如下:

  • 注冊第三方應用
  • 給已注冊的第三方應用授權
  • 第三方應用通過獲取的Token調用Apollo Open API
  • 這尼瑪,坑爹啊,這么麻煩,還要注冊授權拿Token才能搞,這對于強哥這種懶人來說簡直沒法接受。

    Token是不可能用Token的,這輩子都不會用Token來獲取這玩意的。于是,從官方提供的Api來看是沒法了,只能另謀出路啦。

    追根溯源雖然官方文檔中沒有直接提供解決問題的方法,可是我們從提供的開放平臺API倒是也可以發現一些信息:

    根據官網配置后調用如下:

    發現確實可以獲取到項目下的所有namespace信息,可是,信息有點太多了,將namespace下的配置也都返回了回來,而且請求中不加入Authorization屬性的Token信息,調用會返回401沒有權限。果然強扭的瓜不甜。

    那么我們怎么從上面的信息找突破點呢?沒錯,如果有強哥一樣思路的同學,應該會想到:既然開放平臺提供了調用接口,那么我們就去源碼里看看這個接口的具體實現,沒準能夠有所收獲呢!

    從上圖中我們可以看到,接口地址是:http://{portal_address},那么源碼就從apollo-portal入手啦:

    直接進到Controller目錄下(別問我為什么知道是這個目錄,有點基礎的點開項目自然就會這么去找了):

    可以定位到我們調用的開放平臺的方法是這個:

    代碼很簡單,可以看到,獲取namespace走的是namespaceService.findNamespaceBOs()方法,進去實現看看(這里為github點個贊,點擊方法能夠直接跳轉到對應的實現,真的是方便):

    第一行就獲取了namespace:

    namespaceAPI.findNamespaceByCluster(appId, env, clusterName);

    進去看看:

    吼吼,原來走的也是api調用,可是,這個api的服務地址是哪里呢?這就要小伙伴們對Apollo的架構有點熟悉了,上大圖:

    我們調用的接口是Portal進去的,而底層走的是Admin Service,所以,上面代碼的restTemplate調用走的就是apollo-adminservice項目啦,話不多說,進apollo-adminservice看看:

    其實到這里已經差不多了,因為再往細的研究已經沒有了意義。我們已經可以通過調用上圖提供的Api來獲取到我們需要的內容了,試一下:

    試驗發現,確實是可以獲取到項目下的所有namespace,且不需要注冊第三方平臺應用,也不需要在調用接口時傳遞Authorization參數,返回的結果也剛好是簡單的所有namespace信息。完美的解決了我們的問題。

    當然有些小伙伴可能會說,這樣還是要調用http接口,還是有點不方便。強哥只想說,自己本地封裝一個方法,獲取應該還是比較簡單的。而且,Apollo Client提供給我們的Api,比如:ConfigService.getConfig(String namespace)其實底層也是走的socket網絡調用,只是client為我們做了一層封裝對用戶屏蔽了而已,同時還額外加入了緩存機制來提高效率。

    當然,你也可以自己下載apollo-client的源碼,然后在里面封裝調用這個api的邏輯,然后maven部署到自己的私服,這樣就能和其他Api一樣調用啦!不過太麻煩了,強哥就不帶大家試了。

    總結

    先總結一下解決方法:直接越過portal,調用底層admin-service的api

    http://{adminservice}/apps/{appId}/clusters/{clusterName}/namespaces

    {adminservice}這個地址根據自己項目配置的地址及端口去設置哦,默認端口8090~

    其實,我們發現,對于開源項目,很多東西只要我們愿意去找,還是能找到解決的思路的。不過,首先還是要了解其架構原理先,否則在查找源碼的過程中,可能會無從下手。

    就拿為什么強哥上面會知道apollo-client獲取namespace信息的時候有使用了緩存機制呢?因為強哥當時找這個問題的解決方法時,也簡單的研究了下client的源碼,想要看看官方是否有提供對應的Api,結果沒有找到,但是也對apollo-client的部分實現有所熟悉。所以,有時候,走一些“該走的彎路”也不是壞事。

    希望這篇文章對大家有用,好啦,今天就到這~

    關注公眾號獲取更多內容,有問題也可在公眾號提問哦:強哥叨逼叨

    叨逼叨編程、互聯網的見解和新鮮事

    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的如何获取58上真实号码_如何获取Apollo上项目下的所有namespace?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 噼里啪啦免费高清看 | 干夜夜 | 国产一区二区三区www | 国产又黄又 | 日韩亚洲国产欧美 | 天天做天天摸天天爽天天爱 | 在线视频一区二区三区四区 | 精品国产无码在线 | 国产精品久久久久无码av | 91精品观看 | 一区二区三区日韩视频 | 超碰在线色 | 国产成人精品综合久久久久99 | 国产宾馆实践打屁股91 | 天天干免费视频 | 自拍偷拍亚洲欧美 | 亚洲蜜桃视频 | 麻豆性视频 | 冈本视频在线观看 | 天天天天天操 | 在线观看一二区 | 精品一区二区三区在线免费观看 | 乱码av | 亚洲天堂av一区二区三区 | 无码国产伦一区二区三区视频 | 亚洲亚洲人成综合网络 | 午夜精产品一区二区在线观看的 | 污av| 亚洲av无码一区二区三区网址 | 香蕉视频久久 | 国产性按摩| 婷婷五月在线视频 | 亚洲美女在线播放 | 成长快手短视频在线观看 | 成人av小说 | 久久久亚洲国产 | 开心激情av | 成年人在线免费观看视频网站 | 国产欧美精品区一区二区三区 | 欧美在线观看一区二区 | 欧美日韩不卡一区二区 | 91丨porny丨在线中文 | 欧美激精品 | a级在线看| www.-级毛片线天内射视视 | 免费裸体视频网站 | 欧美日韩在线不卡 | 国产精品美女www爽爽爽视频 | 三日本三级少妇三级99 | 欧美人伦 | 久久精品亚洲精品 | 999在线视频| 黄色一级片免费观看 | 亚洲视频小说 | 男生女生搞鸡视频 | 亚洲一级电影 | 欧美色综合网站 | www天堂网| 尤物视频在线免费观看 | 未满十八岁勿进 | www九九九 | 在线免费看黄网站 | 午夜av网址 | 亚洲天堂免费 | 日韩欧美一本 | 久久视频一区二区三区 | 丁香婷婷久久久综合精品国产 | 亚洲经典久久 | 久久片| jizzjizz8| 欧美日本韩国一区二区 | 国产懂色av | 天天艹日日艹 | 欧美视频一二三区 | 中文字幕在线观看免费视频 | 97人妻人人澡人人爽人人精品 | 欧美视频综合 | 蜜美杏av | 午夜精品久久久久久久91蜜桃 | 美丽的姑娘在线观看免费 | 日韩精品视 | 欧美一级爽aaaaa大片 | 亚洲国内自拍 | 精品色综合 | 亚洲成人免费视频 | 五月天丁香久久 | 女同av在线播放 | 亚洲精品乱码久久久久久按摩观 | 精品无码一区二区三区在线 | 久久精品视频一区二区三区 | 久久成人18免费观看 | 午夜黄色一级片 | 精品婷婷色一区二区三区蜜桃 | 男生看的污网站 | 亚洲色图国产视频 | 精品熟妇一区二区三区 | 麻豆精品视频在线观看 | 极品美女开粉嫩精品 | 久操av在线|