consul python sdk

1 python

python使用服务注册和发现的说明,本人对python理解有限,不好封装sdk,熟悉的人自行封装,下面简单说一下接入的步骤

1.1 环境准备

1.下载py-consul

undefined

pip3 install py-consul

1.2 示例代码

以flask web框架为例

import imp
import consul
import uuid

from flask import Flask
import random
import socket

class Consul(object):
    ip_list = ["172.x.x.x", "172.x.x.x", "172.x.x.x"]
    port = 8506
    service_id = ""
    name = ""
    def __init__(self):
        '''初始化,连接consul服务器'''
        ip = random.choice(self.ip_list)
        '''宿主机ip转int,然后取模len(ip_list)当下标,从ip_list取一个consul client的地址。
        这样是每台机器固定往一个client上注册
        '''
        self._consul = consul.Consul(ip, self.port)

    def RegisterService(self, name, host, port, tags=None):
        tags = tags or []
        # 注册服务
        self.service_id = name + "-" + ip + "-" + str(port)
        self.name = name
        self._consul.agent.service.register(
            name,
            self.service_id,
            host,
            port,
            tags,
            check=consul.Check.http("http://{0}:{1}/health".format(host, port), "5s", "3s", "20s"),
        )
    def UnregisterService(self):
        self._consul.agent.service.deregister(self.service_id)

获取要访问的服务的url
def GetServiceUrl(name, path):
    return "http://x.com/" + name + path

app = Flask(__name__)

#健康检查,必须
@app.ro

Original: https://blog.csdn.net/qq_28119741/article/details/127916725
Author: 小卒曹阿瞒
Title: consul python sdk

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/749537/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球