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

Golang封装Consul 服务发现库

以下是一个经过生产验证的 Consul 服务发现封装库,支持注册/注销、健康检查、智能发现等核心功能,可直接集成到项目中:

package consul

import (
	"context"
	"fmt"
	"log"
	"math/rand"
	"net"
	"os"
	"sync"
	"time"

	"github.com/hashicorp/consul/api"
	"github.com/hashicorp/consul/api/watch"
)

type ServiceInstance struct {
	ID       string
	Name     string
	Address  string
	Port     int
	Tags     []string
	Meta     map[string]string
	LastPing time.Time
}

type ConsulClient struct {
	client          *api.Client
	serviceCache    map[string][]ServiceInstance
	cacheLock       sync.RWMutex
	watchPlans      map[string]*watch.Plan
	shutdownChan    chan struct{}
	aclToken        string
	refreshInterval time.Duration
}

// 初始化 
http://www.dtcms.com/a/108669.html

相关文章:

  • Linux进程管理与进程间通信
  • 如何将本地项目上传到Gitee的指定分支
  • 【2-6】数字调制
  • 蓝桥杯2024JavaB组的一道真题的解析
  • 云计算:基础、概念与未来展望
  • vue2拖拉拽做个模拟公式工具
  • 计算机视觉算法实战——基于YOLOv8的行人流量统计系统
  • 缺页异常导致的iowait打印出相关文件的绝对路径
  • Linux红帽:RHCSA认证知识讲解(十)使用 tar创建归档和压缩文件
  • RAG库搭建:从零开始,开启智能问答新世界
  • OpenCV 图形API(15)计算两个矩阵(通常代表二维向量的X和Y分量)每个对应元素之间的相位角(即角度)函数phase()
  • Ubuntu换Windows磁盘格式化指南
  • 二,<FastApi>FastApi的两个核心组件
  • JavaScript基础-window.sessionStorage
  • 通信算法之255:无人机频谱探测设备技术详解
  • 使用Kafka和kafkajs构建示例项目
  • 前端面试题(三):axios有哪些常用的方法
  • Linux上位机开发实践(从用板子到自己做板子)
  • 针对 SQL 查询中 IN 子句性能优化 以及 等值 JOIN 和不等值 JOIN 对比 的详细解决方案、代码示例及表格总结
  • Webpack vs Vite:现代前端构建工具的巅峰对决与选型指南
  • Linux学习七——进程回收
  • 一文详解QT环境搭建:Windows平台Qt安装配置指南
  • react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析--react18
  • 电脑异常关机导致oracle监听器启动后自动停止
  • 蓝桥杯 web 请到下一步
  • Spread使用 配合report使用前篇
  • python爬虫基础讲解
  • 【调用通义千问实现手写文字识别】
  • 04-08手写持久层框架——核心配置和映射配置文件解析
  • 从零构建大语言模型全栈开发指南:第四部分:工程实践与部署-4.2.1视觉-语言模型(VLM)架构设计(CLIP与Flamingo模式)