文档章节

微服务架构模式系列文章之八:第三方注册

 普元云计算
发布于 2016/11/14 10:06
字数 678
阅读 8
收藏 0
点赞 0
评论 0

背景

如采用客户端服务发现模式或者服务器端服务发现模式,各服务实例必须在启动时注册至服务注册表,从而保证其能够被获取,并在关闭时进行注销。

问题

如何在服务注册表内注册和注销服务实例?

需求

  • 各服务实例必须在启动时被注册至服务注册表,并在关闭时进行注销。
  • 崩溃的服务实例必须从服务注册表中注销。
  • 可运行但无法处理请求的服务实例必须从服务注册表中注销。

方案

由第三方注册机制负责各项服务实例在服务注册表中的注册与注销。当该服务实例启动时,其将服务实例注册至服务注册表。而在服务实例关闭时,其将该服务实例从服务注册表中注销。

示例

第三方注册模式的示例包括:

  • Netflix Prana - 这是一款“边车”类应用,可与非JVM应用共同运行并利用Eureka为该应用注册。
  • AWS Autoscaling Groups能够自动将EC2实例注册(注销)至Elastic Load Balancer。
  • Joyent的Container buddy运行在Docker容器当中,作为服务的父进程并将其注册至注册表。
  • Registrator - 能够将Docker容器注册至多种服务注册表,或者从其注销。
  • KubernetesMarathon为代表的各类集群框架将服务实例注册至内置/隐式的注册表,或者从其注销。

结果

第三方注册模式的优势在于:

  • 与自注册模式相比,服务代码复杂程度更低,因为其无需实现自动注册。
  • 注册工具可对服务实例执行健康检查,并根据检查结果注册或者注销该实例。

但第三方注册模式也存在着以下弊端:

  • 第三方注册模式可能只了解服务实例的一些表层状态,例如其是否正在运行,因此 无法了解其是否能够处理请求。不过,之前提到的Netflix Prana等注册工具能够通过执行健康检查来判断当前服务实例的可用性。
  • 除非该注册工具属于基础设施的一部分,否则我们需要对其进行安装、配置与维护。另外,因为它是关键系统组件,因此需要保证其具有高度可用性。

相关模式

原文链接

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 23
码字总数 18356
作品 0
海淀
微服务实战(四):服务发现的可行方案以及实践案例

本系列七篇文章列表如下: 微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行...

CraneH ⋅ 2016/06/30 ⋅ 0

微服务的模式语言(A pattern language for microservices)

本文内容译自http://microservices.io/。 注:模式语言提供了讨论问题的交流术语。微服务作为一个现在流行的服务架构,也有一套自己的模式。这篇文章是微服务相关模式语言的一个提纲。从不同...

开源中国驻成都办事处 ⋅ 2016/10/14 ⋅ 0

架构~微服务

SpringCloud 分布式配置 SpringCloud 分布式配置 史上最简单的 SpringCloud 教程 | 第九篇: 服务链路追踪 (Spring Cloud Sleuth) 史上最简单的 SpringCloud 教程 | 第九篇: 服务链路追踪 (S...

掘金官方 ⋅ 2017/12/27 ⋅ 0

程序猿DD/SpringCloud-Learning

Spring Cloud教程 本项目内容为Spring Cloud教程的程序样例。如您觉得该项目对您有用,欢迎点击右上方的Star按钮,给予支持!! 我的博客:http://blog.didispace.com 我的小密圈(深度交流与...

程序猿DD ⋅ 2016/11/03 ⋅ 0

Chris Richardson微服务翻译:微服务架构中的服务发现

Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现(本文) 微服务之事件驱动的数据管理 微服务部...

butterfly100 ⋅ 2017/11/01 ⋅ 0

服务发现的可行方案以及实践案例[转]

这是关于使用微服务架构创建应用系列的第四篇文章。第一篇介绍了微服务架构的模式,讨论了使用微服务架构的优缺点。第二和第三篇描述了微服务架构内部的通讯机制。这篇文章中,我们将会探讨服...

强子哥哥 ⋅ 2016/06/14 ⋅ 0

微服务实践汇总

微服务实战(一):微服务架构的优势与不足 【编者的话】本文来自Nginx官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。正如作者所说,...

CSharpKit ⋅ 2017/12/14 ⋅ 0

微服务架构实践

一、微服务架构的优势与不足 【编者的话】本文来自Nginx官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。正如作者所说,微服务架构更适...

chapin ⋅ 2016/11/19 ⋅ 0

【docker&spring cloud】微服务化改造

微服务化改造系列之一:总览 1 写在前面 背景 技术圈流行一句话,凡脱离业务谈架构的,都是耍流氓。作为微服务改造系列的第一篇博客,首先介绍一下实施这次技术改造的背景。 第一,我所在公司...

English0523 ⋅ 01/12 ⋅ 0

微服务实战(一):微服务架构的优势与不足

最近一直在关注关于微服务的知识,偶然在dockone上看到了翻译的系列文章,偷个懒就直接搬到这里了,传说集齐7个可以召唤神龙,哈哈~有兴趣的就看看吧~ 本系列七篇文章列表如下: 微服务实战...

CraneH ⋅ 2016/06/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

iExec Blockchain Marketplace for Cloud

iExec Releases the First-Ever Blockchain Marketplace for Trading Cloud Computing Berlin, Germany, May 29, 2018. iExec has released its blockchain-based decentralized cloud marke......

openthings ⋅ 25分钟前 ⋅ 0

OSChina 周二乱弹 —— 加班的代码不要枉费了我的童子功

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《29》- 未完成乐队 《29》- 未完成乐队 手机党少年们想听歌,请使劲儿戳(这里) @FalconChen :#看球提醒# 02:00 巴西v...

小小编辑 ⋅ 44分钟前 ⋅ 11

Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

CodeSheep ⋅ 今天 ⋅ 0

骰子游戏代码开源地址

因为阿里云现在服务器已经停用了,所以上面的配置已经失效。 服务端开源地址:https://gitee.com/goalya/chat4.git 客户端开源地址:https://gitee.com/goalya/client4.git 具体运行界面请参考...

算法之名 ⋅ 今天 ⋅ 0

设计模式--装饰者模式

装饰者模式 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 通用类图 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比...

gaob2001 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部