最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python腳本讀取Consul配置信息的方法示例

 更新時(shí)間:2021年11月02日 09:57:00   作者:小博測試成長之路  
本文主要介紹了Python腳本讀取Consul配置信息的方法示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

先來說一下背景,為什么要寫腳本去讀Consul的配置信息呢?Consul是啥呢?consul是google開源的一個(gè)使用go語言開發(fā)的服務(wù)發(fā)現(xiàn)、配置管理中心服務(wù)。目前公司用的是這個(gè)東西去管理項(xiàng)目上的一些配置信息。公司的環(huán)境是通過docker鏡像的方式去部署的,鏡像是通過rancher去進(jìn)行管理的。這一套東西面臨的一個(gè)問題是:服務(wù)每次更新之后,服務(wù)對應(yīng)的ip地址是動(dòng)態(tài)變化的。每次需要使用swagger去測接口的時(shí)候,都要去rancher上去重新找新的ip地址,比較麻煩。正好呢,最近部門在考慮準(zhǔn)備做接口自動(dòng)化測試,到時(shí)候ip總是變的問題也是需要解決的,因此,就先寫個(gè)腳本調(diào)接口獲取配置信息,拿到某個(gè)服務(wù)的ip和端口信息。順帶的把swagger地址也打印出來,以后要訪問某個(gè)服務(wù)的swagger地址就方便很多了。

python讀取Consul配置信息的話,用到的是python-consul庫,在使用前,需要先安裝一下對應(yīng)的插件。

pip install python-consul

封裝好的讀取consul配置的類如下:

以下腳本中定義的函數(shù),暫時(shí)只做數(shù)據(jù)打印,并未返回具體的數(shù)據(jù),因?yàn)椴煌腸onsul地址,上面的配置信息其實(shí)還需要做處理,比如我這次主需要取出一些部署的服務(wù)的ip和端口信息,但是consul上面還有一些其他的配置信息,是可以過濾掉的。并且,有的配置項(xiàng)可能由于配置錯(cuò)誤,會(huì)存在重復(fù)的配置,暫時(shí)沒有刪除,這種的話,后續(xù)可以在腳本中根據(jù)返回的相關(guān)字段,去取有效的配置信息。

import consul
 
 
class RFConsul(object):
 
    def __init__(self, host, port):
        """初始化,連接consul服務(wù)器"""
        self._client = consul.Consul(host, port, scheme='http', verify=False)
 
    def getAllServices(self):
        services = self._client.agent.services()
        for i in services:
            service = services.get(i)
            print({service['Service']: service})
 
    def getServiceByName(self, service_name):
 
        data = self._client.catalog.service(service_name)
        for value in data[1]:
            print(service_name + "服務(wù)的swagger地址: " + "http://" + value['ServiceAddress'] + ":" + str(value['ServicePort']) + "/swagger-ui.html")

getServiceByName:根據(jù)服務(wù)名,調(diào)用后,直接打印拼接好的swagger-ui的訪問地址。

getAllServices:打印某個(gè)consul地址下的所有配置信息。

調(diào)用方式:

host = "127.0.0.1"  # consul服務(wù)器的ip
port = "8500"  # consul服務(wù)器對外的端口
consul_client = RFConsul(host, port)
consul_client.getAllServices()
res = consul_client.getServiceByName("xxx-servicename") # 輸入配置項(xiàng)的名稱

調(diào)用后,直接得到類似下圖的swagger訪問地址是不是很香:

然后,在公司中的話,像這種配置中心的地址一般都需要通過代理才能訪問,公司用的是socket5的代理,一般在調(diào)用腳本的時(shí)候要把代理軟件打開。也可以在腳本中添加socket代理的配置信息:

 import socket
 import socks
 socks.set_default_proxy(socks.SOCKS5, "ip", port)
 socket.socket = socks.socksocket

到此這篇關(guān)于Python腳本讀取Consul配置信息的方法示例的文章就介紹到這了,更多相關(guān)Python讀取Consul配置信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python爬蟲將爬取的圖片寫入world文檔的方法

    Python爬蟲將爬取的圖片寫入world文檔的方法

    今天小編就為大家分享一篇Python爬蟲將爬取的圖片寫入world文檔的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Django中提供的6種緩存方式詳解

    Django中提供的6種緩存方式詳解

    這篇文章主要介紹了Django中提供的6種緩存方式詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python實(shí)現(xiàn)封裝打包自己寫的代碼,被python import

    Python實(shí)現(xiàn)封裝打包自己寫的代碼,被python import

    這篇文章主要介紹了Python實(shí)現(xiàn)封裝打包自己寫的代碼,被python import,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python tkinter 獲得按鈕的文本值

    python tkinter 獲得按鈕的文本值

    這篇文章主要介紹了python tkinter 獲得按鈕的文本值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python中pyplot直方圖的繪制方式

    python中pyplot直方圖的繪制方式

    這篇文章主要介紹了python中pyplot直方圖的繪制方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • PyQt5 多窗口連接實(shí)例

    PyQt5 多窗口連接實(shí)例

    今天小編就為大家分享一篇PyQt5 多窗口連接實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python使用matplotlib實(shí)現(xiàn)繪制自定義圖形功能示例

    Python使用matplotlib實(shí)現(xiàn)繪制自定義圖形功能示例

    這篇文章主要介紹了Python使用matplotlib實(shí)現(xiàn)繪制自定義圖形功能,結(jié)合實(shí)例形式分析了Python基于matplotlib模塊實(shí)現(xiàn)自定義圖形繪制相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • 通過selenium抓取某東的TT購買記錄并分析趨勢過程解析

    通過selenium抓取某東的TT購買記錄并分析趨勢過程解析

    這篇文章主要介紹了通過selenium抓取某東的TT購買記錄并分析趨勢過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲

    python實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python的pywifi無線網(wǎng)絡(luò)庫的具體使用

    Python的pywifi無線網(wǎng)絡(luò)庫的具體使用

    pywifi是一個(gè)基于Python的用于操作無線網(wǎng)絡(luò)的庫,本文就來介紹一下pywifi的安裝及實(shí)際應(yīng)用場景使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02

最新評論

哈巴河县| 柘荣县| 林口县| 石首市| 鸡泽县| 阜城县| 伊春市| 嘉义市| 明星| 娱乐| 乌鲁木齐县| 五莲县| 南康市| 化隆| 宜宾市| 巴彦县| 金平| 紫金县| 丰镇市| 登封市| 灵石县| 高青县| 嘉义县| 苏尼特左旗| 文成县| 泽普县| 内丘县| 广南县| 华亭县| 积石山| 金昌市| 嵩明县| 龙里县| 绥棱县| 大厂| 都江堰市| 广安市| 如东县| 永福县| 湖州市| 安顺市|