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

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

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

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

使用体验

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

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

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

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

名字服务的作用

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

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

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

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

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

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

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 二:编译ES6

    需要注意的是, babel-loader和babel-polyfill。前者负责语法转化,比如:箭头函数;后者负责内置方法和函数,比如:new Set()。

    心谭博客
  • 剑指offer - 从上到下打印二叉树III - JavaScript

    题目描述: 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推...

    心谭博客
  • NodeJS模块研究 - os

    nodejs 提供了os.platform()和os.type(),可以用来识别操作系统平台。推荐使用: os.platform()

    心谭博客
  • 2018年微服务将疯狂至死?带你领略不一样的思维历程!

    原文作者:Dave Kerr;原文地址:https://www.jdon.com/49261

    Java后端技术
  • 七种微服务反模式

    流行术语为那些逐步形成的、需要一个好的“标签”来方便交流的概念提供了一个上下文。微服务就是这样的一个新“标签”,它定义了一个领域,这个领域我自己也发现了,并且...

    ★忆先★
  • 纲举目张:带你看看微服务架构的前世今生

    资料来源:有群里的朋友给我的一些资料,以及自己百度和论坛、社区找来的一些资料,权当做一个总结式的简介。。。

    技术zhai
  • DevOps能力是落地微服务的前提

    在软件开发领域不存在银弹,当用一项新的技术或新的架构时一定要明白其背后的原理,确保把合适的技术应用在合适的项目上,而不是盲目跟风。 单体应用伸缩性差,而且随着应...

    静一
  • 亚马逊如何变成 SOA(面向服务的架构)?

    上一篇文章,我摘录了《程序员的呐喊》。这本书有趣的内容太多,今天再摘录一段。 1、 亚马逊公司不仅是世界最大的网络书店,还是世界最大的云服务商。它是怎么实现从...

    ruanyf
  • 分布式系统关键技术之服务调度

    服务关键程度要通过对业务的梳理来发现。服务依赖关系用Spring Cloud的一套方法就能够非常好的解决,但是千万不要出现循环依赖,解决方式是通过第三方的消息队...

    用户1263954
  • 响应式微服务架构设计

    使用微服务架构最关键的一个原则就是将系统划分成一个个相互隔离、无依赖的微服务,这些微服务通过定义良好的协议进行通信。而响应式微服务架构,又有其独特的设计原则和理...

    用户1682855

扫码关注云+社区

领取腾讯云代金券