专栏首页EAWorld微服务模式系列之八:第三方注册

微服务模式系列之八:第三方注册

译者自序:

熟悉我的朋友都知道,我很不喜欢翻译东西,因为在两种语言的思维方式之间做频繁切换对我来说是件很痛苦的事情。但是这次不一样,公司和同事的大力支持降低了我的痛苦指数,让我能够坚持把Chris Richardson的微服务模式系列文章翻译完,今天发布第八篇——《第三方注册》。

背景

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

问题

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

需求

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

方案

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

示例

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

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

结果

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

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

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

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

相关模式

原文链接:http://microservices.io/patterns/3rd-party-registration.html

关于译者:

宋潇男

EAII-企业架构创新研究院 专家委员

现任普元云计算架构师,曾任华为云计算产品技术总监。曾负责国家电网第一代云资源管理平台以及中国银联基于OpenStack的金融云的技术方案、架构设计和技术原型工作。

原著作者

Chris Richardson

世界十大软件架构师之一,《POJOS IN ACTION》一书的作者。他的研究领域包括Spring、Scala、微服务架构设计、NoSQL数据库、分布式数据库、分布式数据管理、事件驱动的应用编程等。

本文分享自微信公众号 - EAWorld(eaworld),作者:宋潇男

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-10-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微服务模式系列之七:自注册

    译者自序: 熟悉我的朋友都知道,我很不喜欢翻译东西,因为在两种语言的思维方式之间做频繁切换对我来说是件很痛苦的事情。但是这次不一样,公司和同事的大力支持降低了我...

    yuanyi928
  • 金融行业微服务架构解析

    对于微服务,每个人都有自己的理解,与互联网企业的大量落地相比,微服务在传统金融行业还没有普及,这首先是传统金融行业线上系统需求更新和版本迭代没有互联网公司那么频...

    yuanyi928
  • OpenShift应用发布和运维设计

    近些年来,DevOps的理念已经逐渐深入人心,随着容器、Docker、Kubernetes、OpenShift等概念不断走进我们的视野,越来越多的企业开始在生产...

    yuanyi928
  • 微服务模式系列之七:自注册

    译者自序: 熟悉我的朋友都知道,我很不喜欢翻译东西,因为在两种语言的思维方式之间做频繁切换对我来说是件很痛苦的事情。但是这次不一样,公司和同事的大力支持降低了我...

    yuanyi928
  • 20项任务全面碾压BERT,全新XLNet预训练模型

    这是继BERT发布以来又一个令广大NLPer兴奋的消息, CMU 与谷歌大脑提出的 XLNet 在 20 个任务上超过了 BERT 的表现,并在 18 个任务上...

    昱良
  • Yii2用Gii自动生成Module+Model+CRUD

    URL:http://localhost/项目目录/backend/index.php/gii

    botkenni
  • Python xlrd excel文件操作代码实例

    import xlrd data = xlrd.open_workbook('路径')

    砸漏
  • 前端|利用data对象方法实现倒计时效果

    倒计时功能是非常有用的一个小功能,在常用的一些app、网站里面也比较常用。比如学习通的作业、考试界面,就会显示倒计时来提醒同学们抓紧时间完成;利用手机号登录时也...

    算法与编程之美
  • ali F2(移动端数据展示) 入门

    可接受一个函数作为第二参数, 函数接收的参数为第一参数的配置, 函数返回值将作为配置值

    copy_left
  • 【港中文开源】【CVPR2020】【点云处理】第一个融合分类器和生成器的数据增强网络结构

    代码:https://github.com/liruihui/PointAugment.git

    CNNer

扫码关注云+社区

领取腾讯云代金券