获取阿里云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
    }
}
相关推荐
川石课堂软件测试1 小时前
Mysql中触发器使用详详详详详解~
数据库·redis·功能测试·mysql·oracle·单元测试·自动化
wang6021252183 小时前
为什么不采用级联删除而选择软删除
数据库·oracle
同聘云4 小时前
阿里云国际站服务器gpu服务器与cpu服务器的区别,gpu服务器如何使用?
服务器·前端·阿里云·云计算
tianyuanwo5 小时前
DPU驱动的云服务器革命:性能飙升与成本重构的商业技术双赢
服务器·云计算·dpu
阿里云云原生5 小时前
阿里云可观测 2025 年 11 月产品动态
阿里云·云原生·云计算·可观测
布茹 ei ai6 小时前
7、基于GEE 平台的 VIIRS 夜间灯光监测工具
云计算·js·遥感·gee
是一个Bug8 小时前
声明式事务:深度解析与实战指南
数据库·oracle
云老大TG:@yunlaoda3609 小时前
腾讯云国际站代理商TCCC的技术适配服务包括哪些内容?
数据库·云计算·腾讯云
阿里云云原生9 小时前
LoongSuite:解决 WebSocket 全链路可观测性难题,赋能 AI 应用的实时链路追踪
人工智能·websocket·网络协议·阿里云·云原生·可观测
PyAIGCMaster10 小时前
小程序使用阿里云oss的记录。
阿里云·云计算