基於flask的python注冊到eureka


Eureka架構中的三個核心角色:

服務注冊中心

Eureka的服務端應用,提供服務注冊和發現功能,就是剛剛我們建立的eureka-demo

服務提供者

提供服務的應用,可以是SpringBoot應用,也可以是其它任意技術實現,只要對外提供的是Rest風格服務即可。本例中就是我們實現的user-service-demo

服務消費者

消費應用從注冊中心獲取服務列表,從而得知每個服務方的信息,知道去哪里調用服務方。本例中就是我們實現的user-consumer-demo

Eureka就好比是滴滴,負責管理、記錄服務提供者的信息。服務調用者無需自己尋找服務,而是把自己的需求告訴Eureka,然后Eureka會把符合你需求的服務告訴你。Eureka說白了就是一個注冊服務中心。

同時,服務提供方與Eureka之間通過“心跳”機制進行監控,當某個服務提供方出現問題,Eureka自然會把它從服務列表中剔除。

這就實現了服務的自動注冊、發現、狀態監控。

 

大多數采用微服務框架,很多時候需要兼容不同的開發語言,如python

需要用到py_eureka_client庫使用方式如下:

1.安裝:

pip install py_eureka_client
from flask import Flask
import py_eureka_client.eureka_client as eureka_client

app = Flask(__name__)


def setEureka():
    server_host = "localhost"
    server_port = 5000
    eureka_client.init(eureka_server="http://localhost:1111/eureka",
                       app_name="flask_server",
                       # 當前組件的主機名,可選參數,如果不填寫會自動計算一個,如果服務和 eureka 服務器部署在同一台機器,請必須填寫,否則會計算出 127.0.0.1
                       instance_host=server_host,
                       instance_port=server_port,
                       # 調用其他服務時的高可用策略,可選,默認為隨機
                       ha_strategy=eureka_client.HA_STRATEGY_RANDOM)
    
setEureka()


@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run(debug=True, threaded=True, port=5000, host="0.0.0.0")

效果如下:

 

 按照eureka協議一般的開發語言開發的服務都可以注冊到服務

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM