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協議一般的開發語言開發的服務都可以注冊到服務
原文出處:https://www.cnblogs.com/zlel/p/11645836.html