获取阿里云nacos注册接口状态

获取阿里云nacos注册接口状态

python 复制代码
import json
import time
import nacos
# 注册客户端
def nacos_client():
    # 配置日志记录
    # Nacos服务器地址
    SERVER_ADDRESSES = "http://127.0.0.1:8848"
    # 命名空间ID(可选)
    NAMESPACE = "46c54160-9dd9-4f2187-b3a5-20a23cf01111a9e0"
    # RAM用户的AccessKey ID和AccessKey Secret
    ACCESS_KEY_ID = "LTAI5tRmcgKdACqN222323MDmpHo"
    ACCESS_KEY_SECRET = "ZPQa6D121Qv3YIiLI8Ma21l13Z111W2uTYZnXC"
    # 创建Nacos客户端
    client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE, ak=ACCESS_KEY_ID, sk=ACCESS_KEY_SECRET)
    return client
# 获取所有项目应该在线的个数,和项目名称
def get_service():
    with open("service.json","r",encoding="utf-8") as file:
        json_data = json.load(file)['wrshg']
    return json_data



# 输入服务名称,输出在线个数,ip,端口
def list_naming_instance_def(client,service):
    services = client.list_naming_instance(service_name=service)
    data = services['hosts']
    sum_all = len(data)
    sum_list = []
    for i in data:
        sum_data = []
        sum_data.append(service)
        sum_data.append(i['clusterName'])
        sum_data.append(i['ip'])
        sum_data.append(i['port'])
        sum_list.append(sum_data)
    return sum_all,sum_list
# 根据服务,ip,端口,获取服务详细信息
def get_naming_instance_def(client,data_all):
    # 服务在线个数
    Number_of=data_all[0]
    data_sum = []
    for data in data_all[1]:
        services = client.get_naming_instance(service_name=data[0], ip=data[2], port=data[3],
                                              cluster_name=data[1])
        weight=services['weight']
        data.append(weight)
        data_sum.append(data)
    return Number_of,data_sum
# 判断是否正常
def service_check(data_sum,json_sum):
    # 在线个数
    online = data_sum[0]
    # 正常的在线个数
    normal_online = json_sum['sum']
    #print(online,normal_online)
    if online == normal_online:
        for data1 in data_sum[1]:
            service_status = data1[4]
            if service_status == 1.0:
                continue
            elif service_status == 0.0:
                print(data1)
                print("权重异常")
    elif online < normal_online:
        print(json_sum['name'])
        print("在线个数异常")
    elif online > normal_online:
        print(json_sum['name'])
        print("在线个数大于正常个数,此服务需要更新在线个数")



json_data = get_service()
client=nacos_client()
#json_data = [{'name': 'test-api', 'sum': 2}]
for i in json_data:
    print(i['name'])
    data_all = list_naming_instance_def(client,i['name'])
    data_sum = get_naming_instance_def(client,data_all) 
    service_check(data_sum,i)
    time.sleep(1)


vim service.json
{
  "wrshg": [
    {
      "name": "production-test-open-api",
      "sum": 2
    },
    {
      "name": "datacenter-internal-api",
      "sum": 3
    }
}
相关推荐
NineData4 小时前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
jnrjian5 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle
TTc_5 天前
oracle中的union和union all有什么区别?
数据库·oracle
山峰哥5 天前
吃透 SQL 优化:告别慢查询,解锁数据库高性能
服务器·数据库·sql·oracle·性能优化·编辑器
SaaS_Product5 天前
从实用性与体验角度出发,OneDrive有什么替代品
云计算·saas·onedrive
小扎仙森5 天前
关于阿里云实时语音翻译-Gummy推送WebSocket
websocket·阿里云·云计算
南 阳5 天前
Python从入门到精通day37
数据库·python·oracle
晚秋大魔王5 天前
ubutnu 服务器配置openclaw 使用阿里云百炼模型
运维·服务器·阿里云
轩情吖5 天前
MySQL库的操作
android·数据库·mysql·oracle·字符集·数据库操作·编码集
脱发的老袁6 天前
【数据库】Oracle手动清理归档日志
数据库·oracle