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/
转载文章受原作者版权保护。转载请注明原作者出处!