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