发现服务客户端

discovery-client的Python项目详细描述


Build StatusMaintainabilitycodecovPyPI version

发现客户端

consul的发现客户端包同步/异步。

安装

使用pip安装和更新:

pip install -U discovery-client

依赖关系

仅异步客户端

用法示例

使用标准客户端

fromdiscovery.clientimportConsuldc=Consul('localhost',8500)dc.find_service('consul')

与烧瓶结合+穿线。

importjsonimportthreadingfromdiscovery.clientimportConsulfromflaskimportFlaskapp=Flask(__name__)dc=Consul('discovery',8500)dc.register('standard-client',5000)@app.route('/manage/health')defhealth():returnjson.dumps({'status':'UP'})@app.route('/manage/info')definfo():returnjson.dumps({'app':'standard-client'})@app.before_first_requestdefenable_service_registry():defprobe_discovery_connection():dc.consul_is_healthy()thread=threading.Thread(target=probe_discovery_connection)thread.start()

使用异步

使用异步的客户端

importasynciofromdiscoveryimportaioclientloop=asyncio.get_event_loop()dc=aioclient.Consul('localhost',8500,loop)search_one_task=loop.create_task(dc.find_service('consul'))search_all_task=loop.create_task(dc.find_services('consul'))loop.run_until_complete(search_one_task)loop.run_until_complete(search_all_task)

使用aiohttp

使用aiohttp+异步的服务器

importasynciofromaiohttpimportwebfromdiscovery.aioclientimportConsulasyncdefservice_discovery(app):app.loop.create_task(dc.register('aio-client',5000))asyncio.sleep(15)app.loop.create_task(dc.consul_is_healthy())asyncdefhandle_info(request):returnweb.json_response({'app':'aio-client'})asyncdefhandle_status(request):returnweb.json_response({'status':'UP'})app=web.Application()dc=Consul('discovery',8500,app.loop)app.on_startup.append(service_discovery)app.add_routes([web.get('/manage/health',handle_status),web.get('/manage/info',handle_info)])web.run_app(app,host='0.0.0.0',port=5000)

链接

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在字符串文本中查找字符串的出现处?   java类对象何时被垃圾回收?   java在没有setter/getter的其他类中切换变量   java禁用依赖项的lint   Android TextView HTML中的java换行符   java Mutiny:处理多个UNI并使用来自“外部”的值   java在JavaFX中使用ComboBox获得选项的空白列表   java仅显示和保存true语句   mavencompilerplugin中使用的release标记/属性和compilerVersion标记/属性之间的差异。升级到java 11时出现的问题   java:单例异常可以工作吗?   java twitter4j setpage()不工作   java如何使用REST在HP ALM 12中创建新缺陷   Eclipse会在每次重新启动时将Java编译器遵从性级别重置为1.7   java组织。冬眠例外虽然捕获到了DataException   查找多维数组*java的特定元素的长度*