当前位置: 首页 > article >正文

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

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

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
    }
}

http://www.kler.cn/a/534719.html

相关文章:

  • 在线教程丨YOLO系列10年更新11个版本,最新模型在目标检测多项任务中达SOTA
  • 专门记录台式电脑常见问题
  • 哪些专业跟FPGA有关?
  • [25] cuda 应用之 nppi 实现图像色彩调整
  • 【优先算法】专题——位运算
  • 【multi-agent-system】ubuntu24.04 安装uv python包管理器及安装依赖
  • OpenHarmony的ArkTS如何进行JSON字符串的解析工作
  • 02-合并两个有序数组
  • 央行发布《贸易金融分布式账本技术要求》,参考架构包括5部分
  • Redis命令:列表模糊删除详解
  • Linux/C高级(精讲)----shell结构语句、shell数组
  • element-plus+vue3前端如何根据name进行搜索查到符合条件的数据
  • async-http-client使用示例
  • Linux网络 | 理解NATPT, 数据链路层Done
  • 如何查看 MySQL 是否处于运行状态
  • 开放式TCP/IP通信
  • Android 自定义View的详解
  • html转PDF文件最完美的方案(wkhtmltopdf)
  • 【机器学习】训练(Training)、验证(Validation)和测试(Testing)
  • Linux内核链表
  • 从0开始达芬奇(3.8)
  • 【Spring Boot】解锁高效安全之门:登录令牌技术的实战应用与价值解析
  • Oracle 变更redo log文件位置
  • Java 大视界 -- Java 大数据在智能教育中的应用与个性化学习(75)
  • 【重生之学习C语言----杨辉三角篇】
  • AWS Copilot