Python客户端注册到服务中心Eureka

    在Spring Cloud的Netfix技术框架中,有一个很重要的管家:Eureka,它作为服务注册中心,提供给各个微服务注册进去,方便整合监控各个微服务等,其以Java语言为基础,同时也有部分客户端实现了服务注册协议,也可以注册进去,这里就试试用python吧,首先搜索一下:

    

    有这个库,这里就使用它的异步实现的wasp-eureka吧,安装很简单:pip install wasp-eureka --user -U(注意:要安装使用这个库,Python版本需要大于等于3.5,这里使用最新版本3.6),安装完成后就可以使用了,因为每个微服务都是提供API的,这里就使用tornado作为Web服务器吧,关于tornado基本使用,可以参考博文《基于Tornado搭建Raspberry Pi监控平台》。

    首先,创建一个Eureka服务注册中心,不难,这里就不演示了,创建按默认配置启动后界面如下,可以看到,目前还没有微服务注册进来:

    

    然后实现python客户端,并注册到服务中心,代码如下:

# -*- coding: utf-8 -*-
# Create By LinJK At 09/22/2017 22:52:28 
import asyncio
import tornado.web
from wasp_eureka import EurekaClient
from tornado.options import define, options

define("port", default=7171, help="run on the given port", type=int)

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.write('[GET] python tornado...')

app_name = 'linjk-python-eureka-client'

ip = '192.168.1.109'
my_eureka_url = 'http://192.168.1.109:8761'

loop = asyncio.get_event_loop()    # 创建事件循环

eureka = EurekaClient(app_name=app_name, port=options.port, ip_addr=ip, 
                      hostname="localhost", eureka_url=my_eureka_url, loop=loop)

async def main():
    result = await eureka.register()
    print("[Register Rureka] result: %s" % result)

    tornado.options.parse_command_line()
    app = tornado.web.Application(
        handlers=[(r'/', IndexHandler)],
        debug=True
    )
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

    while True:
        await asyncio.sleep(60)
        await eureka.renew()

if __name__ == "__main__":
    loop.run_until_complete(main())
    

    这里使用了python的协程,它是在python3.4版本引入,3.5版本确定语法。创建一个协程很简单,使用async关键字即可,这里创建一个main协程对象,然后把它加入到事件循环loop中并启动(run_until_complete方法),该协程主要逻辑是注册到eureka服务中心,然后初始化tornado的配置参数并启动tornado,然后进入一个死循环中不断与服务中心保存心跳,这里间隔设为60秒。

     执行python **.py启动该程序,可在服务中心看到这个微服务已经注册了:

     

     看看访问行不行:

     

     这里是直接访问的,后面多个微服务加进来,可以引入网关来管理多个微服务,这样,对于前端来说只有一个入口,后面,针对复杂的业务,可以选择最适合的技术来实现微服务,实现一个灵活的异构系统。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值