Flask 项目向Eureka中注册服务

深度学习模型往往使用python实现,而大多数工程项目是用非常流行的spring cloud构建,那spring cloud怎么调用python提供的REST 接口

需要用到py_eureka_client库

目前支持python 3.6 (3.5未测试) 官方文档最可靠 https://github.com/keijack/python-eureka-client/blob/master/README.zh_cn.md

安装:

pip install py_eureka_client

注册服务

创建一个config文件 setEureka

def setEureka():
    server_host = eureka_config.server_host
    server_port = eureka_config.server_port
    eureka_client.init(eureka_server= eureka_config.eureka_server,
                       app_name=get_api_name(),
                       #""" 当前组件的主机名,可选参数,如果不填写会自动计算一个,如果服务和 eureka 服务器部署在同一台机器,请必须填写,否则会计算出 127.0.0.1
                       instance_host=server_host,
                       instance_port=server_port,
                       # 调用其他服务时的高可用策略,可选,默认为随机
                       ha_strategy=eureka_client.HA_STRATEGY_RANDOM)

在接口处调用

setEureka();

发现服务

如果你的服务不对外提供服务,但是却需要调用其他组件的服务,同时也不需要让 eureka 管理组件状态,那么你可以仅使用发现服务,代码如下:

import py_eureka_client.eureka_client as eureka_client

eureka_server_list = "http://your-eureka-server-peer1,http://your-eureka-server-peer2"
# you can reuse the eureka_server_list which you used in registry client
eureka_client.init_discovery_client(eureka_server_list)

最简单的调用方式是:

import py_eureka_client.eureka_client as eureka_client

try:
    res = eureka_client.do_service("OTHER-SERVICE-NAME", "/service/context/path", return_type="string")
    print("result of other service" + res)
except urllib.request.HTTPError as e:
    # If all nodes are down, a `HTTPError` will raise.
    print(e)

退出

大部分情况下,如果你正常退出 python 应用程序,有时候你可能希望自己来控制退出的时机,那么你可以通过以下代码来实现:

import py_eureka_client.eureka_client as eureka_client

eureka_client.stop()

 

你可能感兴趣的:(python)