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

本文为普元云计算架构师宋潇男翻译微服务模式文章系列,独家授权EAII企业架构创新研究院(微信号:eaworld)发布,转载请注明出处,违者必究。


译者自序:


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


背景


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


问题


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


需求


  • 各服务实例必须在启动时被注册至服务注册表,并在关闭时进行注销。

  • 崩溃的服务实例必须从服务注册表中注销。

  • 可运行但无法处理请求的服务实例必须从服务注册表中注销。

方案


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


示例


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


  • Netflix Prana - 这是一款“边车”类应用,可与非JVM应用共同运行并利用Eureka为该应用注册。

  • AWS Autoscaling Groups能够自动将EC2实例注册(注销)至Elastic Load Balancer。

  • Joyent的Container buddy运行在Docker容器当中,作为服务的父进程并将其注册至注册表。

  • Registrator - 能够将Docker容器注册至多种服务注册表,或者从其注销。

  • KubernetesMarathon为代表的各类集群框架将服务实例注册至内置/隐式的注册表,或者从其注销。


结果


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


  • 与自注册模式相比,服务代码复杂程度更低,因为其无需实现自动注册。

  • 注册工具可对服务实例执行健康检查,并根据检查结果注册或者注销该实例。


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


  • 第三方注册模式可能只了解服务实例的一些表层状态,例如其是否正在运行,因此 无法了解其是否能够处理请求。不过,之前提到的Netflix Prana等注册工具能够通过执行健康检查来判断当前服务实例的可用性。

  • 除非该注册工具属于基础设施的一部分,否则我们需要对其进行安装、配置与维护。另外,因为它是关键系统组件,因此需要保证其具有高度可用性。


相关模式


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


若想与作者有更多交流,请添加微信号:cloud_primeton


关于译者:

宋潇男

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

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


0?wx_fmt=jpeg


原著作者

Chris Richardson

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


关于EAII

EAII(Enterprise Architecture Innovation Institute)企业架构创新研究院,致力于软件架构创新与实践,加速企业数字化转型。

eaworld项目(微信号:eaworld,长按二维码关注)

640?wx_fmt=jpeg

eaworld是EAII的官方微信账号。


本周五(10月14日)下午14:30,微课堂持续进行中,等你来看!


0?wx_fmt=jpeg


0?wx_fmt=gif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值