获取阿里云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
    }
}
相关推荐
weixin_666593991 小时前
自然资源时空智能体建设方案:从数字化到智能化的演进路径
大数据·人工智能·大模型·云计算·agent·云平台·空间数据库
烟雨归来1 小时前
RAC数据库OS进程消失,GV$SESSION长期残留KILLED僵尸会话处理
数据库·oracle
宇宙第一小趴菜2 小时前
六、Oracle 目录结构
数据库·oracle
在繁华处2 小时前
MySQL 学习笔记 01:从概念到约束,搭好库表骨架
数据库·oracle
Database_Cool_3 小时前
LLM 应用怎么省 Token、加速响应——阿里云 Tair 语义缓存实战
阿里云·缓存·云计算
RoboWizard3 小时前
金士顿高速闪存盘 单双接口适配多元存储需求
大数据·运维·人工智能·智能手机·云计算
Kari114 小时前
腾讯云ADP部署需要什么条件?部署流程与配置检查清单
人工智能·云计算·腾讯云
Database_Cool_5 小时前
云数据库备份是怎么实现的、支持时间点恢复吗:阿里云 RDS MySQL 备份与 PITR 详解
数据库·mysql·阿里云
国际云,接待5 小时前
Google Cloud Armor实战:给网站API加WAF、限速和日志验证
后端·网络安全·云计算·googlecloud
2501_942389555 小时前
为支撑持续攀升的AI资本开支
人工智能·oracle·hbase·database·storm