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注册服务的更多相关文章

  1. 利用etcd实现服务注册和服务发现

    文章目录 服务注册 服务发现 协议编写 服务端实现 客户端实现 实验结果 参考文章 服务注册 主要逻辑在go func函数里面,先是去etcd获取一下服务,没有获取到的话就注册进去. package ...

  2. etcd实现服务发现

    前言 etcd环境安装与使用文章中介绍了etcd的安装及v3 API使用,本篇将介绍如何使用etcd实现服务发现功能. 服务发现介绍 服务发现要解决的也是分布式系统中最常见的问题之一,即在同一个分布式 ...

  3. worker 启动时向 etcd 注册自己的信息,并设置一个带 TTL 的租约,每隔一段时间更新这个 TTL,如果该 worker 挂掉了,这个 TTL 就会 expire 并删除相应的 key。

    1.通过etcd中的选主机制,我们实现了服务的高可用.同时利用systemd对etcd本身进行了保活,只要etcd服务所在的机器没有宕机,进程就具备了容灾性. https://mp.weixin.qq ...

  4. etcd学习(3)-grpc使用etcd做服务发现

    grpc通过etcd实现服务发现 前言 服务注册 服务发现 负载均衡 集中式LB(Proxy Model) 进程内LB(Balancing-aware Client) 独立 LB 进程(Externa ...

  5. C#操作注册服务卸载服务启动服务停止服务.. .

    using Microsoft.Win32; using System; using System.Collections; using System.Collections.Generic; usi ...

  6. 一台服务器发布多个tomcat并注册服务名办法

    修改服务名称 打开Tomcat7.0.65_1/bin/service.bat  修改注册服务名称 当然这个名字自己改 比如Tomcat7_2 原始文件:   set SERVICE_NAME=Tom ...

  7. maven小项目注册服务(一)--email和persist模块

    跟着书里的讲解,跟着做了一遍该项目: 首先明白注册账户的需求: 账号的lD和Email地址都可以用来唯一地标识某个用户,而显示名称则用来显示在页面下,方便浏览.注册的时候用户还需要输入两次密码,以确保 ...

  8. mysql注册服务

    http://www.2cto.com/database/201301/185456.html ____________________________________________________ ...

  9. dubbo注册服务IP解析异常及IP解析源码分析

    在使用dubbo注册服务时会遇到IP解析错误导致无法正常访问. 比如: 本机设置的IP为172.16.11.111, 但实际解析出来的是180.20.174.11 这样就导致这个Service永远也无 ...

随机推荐

  1. K8S创建的相关yaml文件

    一.K8S-yaml的使用及命令 YAML配置文件管理对象 对象管理: # 创建deployment资源 kubectl create -f nginx-deployment.yaml # 查看dep ...

  2. Git--01 基础 - 远程仓库的使用

    目录 Git 基础 - 远程仓库的使用 远程仓库的使用 查看远程仓库 添加远程仓库 从远程仓库中抓取与拉取 推送到远程仓库 查看某个远程仓库 远程仓库的移除与重命名 Git 基础 - 远程仓库的使用 ...

  3. ThreadPoolExecuotor源码参考

    Executor --> ExecutorService --> AbstractExecutorService --> ThreadPoolExecuotor Executor接口 ...

  4. 清理maven缓存

    原文:https://blog.csdn.net/viplisong/article/details/82963989maven下载失败后会缓存文件,可能导致下次下载失败.通过以下两步清理 1.cd ...

  5. bzoj4903 & loj2264 [Ctsc2017]吉夫特 Lucas 定理+状压DP

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4903 https://loj.ac/problem/2264 http://uoj.ac/pr ...

  6. input框金额输入验证

    金额输入要求:只能是数字且小数点后保留两位小数 html <input type="text" min="10" id="dc-moneyInp ...

  7. python自动刷新抢火车票

    #!/usr/bin/env python #-*- coding: utf-8 -*- """ 火车票 可以自动填充账号密码,同时,在登录时,也可以修改账号密码 然后手 ...

  8. 【leetcode】1017. Convert to Base -2

    题目如下: Given a number N, return a string consisting of "0"s and "1"s that represe ...

  9. Kafka数据如何同步至MaxCompute之实践讲解

    摘要:本次分享主要介绍Kafka产品的原理和使用方式,以及同步数据到MaxCompute的参数介绍.独享集成资源组与自定义资源组的使用背景和配置方式.Kafka同步数据到MaxCompute的开发到生 ...

  10. sql2008质疑处理方法

    日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoint_Config)进行些不正常操作如数据库在读写时而无故停止数据库,从 ...