etcd注册服务
etcd作为最简单(轻量,精简)的kv服务。etcd可以应用很多方面,但是它有一个特点,etcd只是基础,需要你自己实现功能。它不像其其它组件开箱即用,也正是如此,它足够简单精巧。
回到主题,etcd里面并没有服务注册发现的功能,所以要自己开发。
推荐一篇介绍文章 https://blog.csdn.net/bbwangj/article/details/82584988
etcd的服务注册发现,主要就是用了etcd中KV存储接TTL
基本做法:存储Key(一般是系统唯一的)V(服务配置),存储时要设置一个TTL周期。
然后定时刷新该Key(etcd中是一个指令,发送租约的ID)。
etcd没有consul里面的功能,consul会主动调用服务接口查询,检测监控状态。
因此在etcd则采用上面租约的方式,类似心跳上报,超时就在etcd中取消了。
最后我封装了一个库etcd.Provider.Service。里面采用了上面的方式
一个服务存储
Key:/系统/Services/srvname/srvid
value:ServiceEntry实体的json序列化,包含了服务的信息
注意:srvid必须在你的服务中配置唯一,同时决定了整个key的唯一
gti地址:https://github.com/jinyuttt/etcd.Provider.Service.git
nuget:etcd.Provider.Service
最后提一句:etcd中订阅发布是利用watch功能;负载均衡就是利用租约存储功能;分布式通知与协调是利用watch功能;
分布式锁是利用lock功能;队列也是存储和watch功能。
etcd注册服务的更多相关文章
- 利用etcd实现服务注册和服务发现
文章目录 服务注册 服务发现 协议编写 服务端实现 客户端实现 实验结果 参考文章 服务注册 主要逻辑在go func函数里面,先是去etcd获取一下服务,没有获取到的话就注册进去. package ...
- etcd实现服务发现
前言 etcd环境安装与使用文章中介绍了etcd的安装及v3 API使用,本篇将介绍如何使用etcd实现服务发现功能. 服务发现介绍 服务发现要解决的也是分布式系统中最常见的问题之一,即在同一个分布式 ...
- worker 启动时向 etcd 注册自己的信息,并设置一个带 TTL 的租约,每隔一段时间更新这个 TTL,如果该 worker 挂掉了,这个 TTL 就会 expire 并删除相应的 key。
1.通过etcd中的选主机制,我们实现了服务的高可用.同时利用systemd对etcd本身进行了保活,只要etcd服务所在的机器没有宕机,进程就具备了容灾性. https://mp.weixin.qq ...
- etcd学习(3)-grpc使用etcd做服务发现
grpc通过etcd实现服务发现 前言 服务注册 服务发现 负载均衡 集中式LB(Proxy Model) 进程内LB(Balancing-aware Client) 独立 LB 进程(Externa ...
- C#操作注册服务卸载服务启动服务停止服务.. .
using Microsoft.Win32; using System; using System.Collections; using System.Collections.Generic; usi ...
- 一台服务器发布多个tomcat并注册服务名办法
修改服务名称 打开Tomcat7.0.65_1/bin/service.bat 修改注册服务名称 当然这个名字自己改 比如Tomcat7_2 原始文件: set SERVICE_NAME=Tom ...
- maven小项目注册服务(一)--email和persist模块
跟着书里的讲解,跟着做了一遍该项目: 首先明白注册账户的需求: 账号的lD和Email地址都可以用来唯一地标识某个用户,而显示名称则用来显示在页面下,方便浏览.注册的时候用户还需要输入两次密码,以确保 ...
- mysql注册服务
http://www.2cto.com/database/201301/185456.html ____________________________________________________ ...
- dubbo注册服务IP解析异常及IP解析源码分析
在使用dubbo注册服务时会遇到IP解析错误导致无法正常访问. 比如: 本机设置的IP为172.16.11.111, 但实际解析出来的是180.20.174.11 这样就导致这个Service永远也无 ...
随机推荐
- 转载他人的efk搭建文章后边有链接和地址
EFK教程 - EFK快速入门指南 通过部署elasticsearch(三节点)+filebeat+kibana快速入门EFK,并搭建起可用的demo环境测试效果 目录 ▪ 用途▪ 实验架构▪ E ...
- BJSV-P-002高精度测速一体机
测速.抓拍.录像于一体,产品处于行业顶尖水平. 1 测速一体机参数 2 接口和资源 3 相机接口 1. 前面板接口 测速一体机镜头接口采用C-Mount ...
- C# 生成word文档(NPOI.XWPF)
一.基础 1.创建Word using NPOI.XWPF.UserModel XWPFDocument doc = new XWPFDocument(); //创建新的word文档 XWPFPara ...
- poj 1845 Sumdiv (等比求和+逆元)
题目链接:http://poj.org/problem?id=1845 题目大意:给出两个自然数a,b,求a^b的所有自然数因子的和模上9901 (0 <= a,b <= 50000000 ...
- day15 python lambda函数 递归函数 二分法
day15 python 一.匿名函数 lambda 1.lambda函数 def func(n): #普通函数, 功能比较简单, 当函数多的时候, 起名也不 ...
- python 绘制三国人物关系图
author:weizhendong data:2019.12.19 func:绘制三国演义人物关系图 """ import codecs import jieba.po ...
- Vue学习笔记-作用域插槽
有时候我们希望子组件的内容由父组件决定如何展示,这个时候子组件的数据父组件并不能访问到,而作用域插槽的关键之处就在于,父组件能接收来自子组件的slot传递过来的参数. <div id=" ...
- Rainbow的信号 CH3801
题目链接 题意:求n个整数任意取一个区间,一起进行xor,and,或or的操作,求xor的期望值,and的期望值,or的期望值. 思路:区间取的左端点为l,右端点为r,当r==l时,选的概率为1/n/ ...
- xunit的assert常用部分方法解释
布尔:True(返回bool的方法或者字段) 判断是否为trueFalse(返回bool的方法或者字段) 判断是否为false 字符串(区分大小写):Equal(期待结果,实际结果) 判断输出值和期待 ...
- jmeter添加自定义扩展函数之if判断
1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这 ...