基于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协议一般的开发语言开发的服务都可以注册到服务