首页 > 其他分享 >Consul测试代码

Consul测试代码

时间:2025-01-05 11:25:31浏览次数:1  
标签:name service Consul self port consul 测试代码 id

import time
from consul import Consul, Check


class ConsulServiceManager:
    def __init__(self, host, port=8500, schema="http"):
        self._host = host
        self._port = port
        self._schema = schema
        self._local_ip = "127.0.0.1"  # 通过环境变量获取
        self.consul = Consul(host=self._host, port=self._port, scheme=self._schema)

    def register_service(self, service_name, service_id, service_address, service_port):
        self.consul.agent.service.register(
            name=service_name,
            service_id=service_id,
            address=service_address,
            port=service_port,
            check=Check.http(
                f'https://{service_address}:{service_port}/health',
                interval='10s',
                timeout='5s',
            ),
        )
        print(f'Service {service_name} registered with ID {service_id}.')

    def deregister_service(self, service_id):
        self.consul.agent.service.deregister(service_id)
        print(f'Service with ID {service_id} deregistered.')

    def discover_service(self, service_name):
        index, services = self.consul.catalog.services()
        print("Available services:")
        for service in services:
            print(f'- {service}')

        # 获取具体服务的信息
        index, service_info = self.consul.catalog.service(service_name)
        if service_info:
            print(f"Service '{service_name}' found with info: {service_info}")
        else:
            print(f"Service '{service_name}' not found.")


if __name__ == '__main__':
    # 创建 ConsulServiceManager 实例
    consul_manager = ConsulServiceManager(host='192.168.20.50')

    # 服务信息
    _service_name = 'my_service'
    _service_id = 'my_service_id'
    _service_address = 'www.xxx.com'  # 使用 Consul 的主机名
    _service_port = 8080

    # 注册服务
    consul_manager.register_service(
        _service_name, _service_id, _service_address, _service_port
    )

    # 等待一段时间,以便服务注册
    time.sleep(5)

    # 发现服务
    consul_manager.discover_service(_service_name)

    # 注销服务
    time.sleep(5)
    consul_manager.deregister_service(_service_id)

 

标签:name,service,Consul,self,port,consul,测试代码,id
From: https://www.cnblogs.com/52-qq/p/18653204

相关文章

  • 使用 Selenium IDE 生成 Java 自动化测试代码
    首先使用SeleniumIDE录制操作。导出为JavaJUnit测试文件。创建Maven项目,并编辑pom.xml添加依赖:我使用的SeleniumIDE版本为3.17.2,其对应的JUnit版本为4.x.x。<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/200......
  • consul_sd_configs
    consul_sd_configs/prometheus/data$cat/etc/prometheus/prometheus.yml#myglobalconfigglobal:scrape_interval:15s#Setthescrapeintervaltoevery15seconds.Defaultisevery1minute.evaluation_interval:15s#Evaluaterulesevery15second......
  • FluentAssertions:C#单元测试断言库,让测试代码更加直观、易读!
    推荐一个C#开源库,用于单元测试中的断言,它提供了一系列的扩展方法,使得单元测试的断言看起来更加自然流畅。01项目简介FluentAssertions是一个基于.NET的断言库,它提供了一种链式调用的方式来编写断言语句。支持框架.NETFramework4.7、.NETCore2.1、.NETCore3.0、.NET6......
  • Windows环境下ocelot + consul 实现负载均衡
    1.Consul的下载下载地址:https://developer.hashicorp.com/consul/installconsul的官网:https://www.consul.io/api/agent/service.html 2.解压之后配置环境变量3.启动Consul第一种:在启动consul的时候,node参数可以写成-node=127.0.0.1consulagent-server-ui-bootstr......
  • 微服务分布式(二、注册中心Consul)
    首先我们需要安装consul,到官网下载ConsulInstall|Consul|HashiCorpDeveloper在解压的consul目录下执行启动命令consulagent-dev启动服务-dev表示开发模式  -server表示服务模式启动后在浏览器访问8500端口http://localhost:8500/可以看到服务管理界面项目......
  • .NET 8.0在linux中搭建consul+ocelot+nginx转发全流程,以及docker容器化
    闲来无事自己在电脑上搭了一套docker容器化加上服务发现反向代理的套餐,在这儿把流程写个大概,后面玩儿的别踩坑了。源码地址:https://github.com/Asomnus/MyProject1.git一、环境工具1.开发:net8.0SDK、vs2022(我用的这个,支持8.0都行)、mysql、redis等等(根据业务自己选)2.虚拟机相......
  • 服务注册与发现:Zookeeper、Eureka、Consul、Nacos
    Zookeeper功能特点数据一致性保障:Zookeeper是一个分布式协调服务,它基于ZAB(ZookeeperAtomicBroadcast)协议来保证数据的一致性。在分布式系统中,多个节点可以通过Zookeeper来共享配置信息、实现分布式锁等功能。例如,在一个分布式集群中,不同节点对于任务的分配和执行顺序可以......
  • PHP实现开源Consul服务发现与治理
    PHP实现开源Consul服务发现与治理在分布式系统中,服务发现和治理是必不可少的组成部分。其中,consul作为一款服务发现和治理工具,被广泛应用于微服务架构中。本文将介绍如何使用php实现开源consul服务发现与治理。一、什么是Consul?Consul是一款由HashiCorp公司开发的服务发现和治......
  • prometheus基于consul自动发现
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录1.prometheus&consul部署2.展示本文主要将prometheus和consul结合起来使用,通过conusl注册服务至prometheus,实现服务统一注册,统一报警管理等。整个架构思路consul+prometheus+alertmanage......
  • 神经网络入门实战:(十九)完整训练及测试代码,以数据集CIFAR10为例
    完整实操之:CIFAR10数据集的训练与测试CIFAR10数据集,有50000张训练图片,有10000张测试图片下方代码中:训练轮次为10轮;batch_size=64,50000/64=782(向上取整),所以训练一轮就等于训练了782个batch_size的图片,10轮就是7820;最终运行结果展示两个部分:画出78......