【微服务】微服务架构下,名字服务的使用体验和功能设计

本文记录下接入微服务时,名字服务的使用体验以及名字服务的相关知识概念。作为“消费”侧,理解概念以帮助熟练使用工具即可,并不需要深入其中的原理。

作者: 心谭 Github
,腾讯前端开发

来自:心谭博客 xxoo521.com,专注算法与 web 开发的技术博客

使用体验

在做网关相关需求时,用到了名字服务。第一次接触名字服务,直接通过 sdk 调用 api,传入服务的名字,就能拿到有效的服务地址(由 ip+host 组成)。

代码中,可以去掉之前的 名称 => ip
映射相关的配置,对于不同环境下的后端服务(例如开发、测试、正式),也可以通过命名空间来进行解决。

调用方得到的 ip:host 地址,是已经负载均衡的,“智能”地从服务地址列表中获取到当前合适的地址。作为调用侧,代码无感。

调用方调用完成后,将调用成功状态、消耗时间上报名字服务中心,服务中心会更智能地对服务实例进行调整。

名字服务的作用

在微服务架构下进行服务治理,解决负载均衡、服务注册、服务发现、服务熔断、动态路由、限频限流等问题。

在名字服务中,有三个角色:调用方、服务提供方、名字服务中心。

对服务提供方来说,它的主要功能是:

  • 服务注册:启动时注册服务地址
  • 服务销毁:关闭/异常时销毁服务地址
  • 心跳上报:上报心跳到名字服务中心

对调用方来说,它的主要功能是:

  • 服务发现:从名字服务中心获取服务的相关信息(地址、负载均衡权重、健康状态等等)
  • 服务上报:上报服务调用结果

对名字服务中心,它的主要功能是:

  • 健康检查:定时检测服务是否存活。对应服务提供方的“心跳上报”
  • 负载均衡:根据服务权重、调用结果等信息,动态化分配
  • 限频限流

原文 

https://xxoo521.com/2020-05-04-name-service/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 【微服务】微服务架构下,名字服务的使用体验和功能设计

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址