在微服务架构中,注册中心是最核心的基础服务之一,本文将详细介绍下注册中心的组成部分和它们之前的关系。

目录

一、注册中心原理

二、注册中心功能

三、常见的注册中心


一、注册中心原理

注册中心主要涉及到三大角色:服务提供者、服务消费者、注册中心,它们之间的关系大致如下:

  1. 各个微服务在启动时,将自己的网络地址等信息注册到注册中心,注册中心存储这些数据。
  2. 服务消费者从注册中心查询服务提供者的地址,并通过该地址调用服务提供者的接口。
  3. 各个微服务与注册中心使用一定机制(例如心跳)通信。如果注册中心与某微服务长时间无法通信,就会注销该实例。
  4. 微服务网络地址发送变化(例如实例增加或IP变动等)时,会重新注册到注册中心。这样,服务消费者就无需人工修改提供者的网络地址了。

注册中心的架构图如下:

二、注册中心功能

注册中心应具备以下功能:

  1. 服务注册表 :服务注册表是注册中心的核心,它用来记录各个微服务的信息,例如微服务的名称、IP、端口等。服务注册表提供查询API和管理API,查询API用于查询可用的微服务实例,管理API用于服务的注册与注销。
  2. 服务注册与发现:服务注册是指微服务在启动时,将自己的信息注册到注册中心的过程。服务发现是指查询可用的微服务列表及网络地址的机制。
  3. 服务检查:注册中心使用一定的机制定时检测已注册的服务,如发现某实例长时间无法访问,就会从服务注册表移除该实例。

Spring Cloud提供了多种注册中心的支持,例如Eureka、Consul和ZooKeeper等,下一篇文章将介绍下利用Eureka搭建注册中心,敬请期待哦。

三、常见的注册中心

结合开发中常用的微服务架构体系,再看注册中心。以下主要以Java体系中常用的微服务框架为例进行说明。

1)Dubbo中的注册中心

Dubbo支持多种注册中心的实现,常用的是Redis、Zookeeper,这些组件本身就可以做到高性能和高可用。在Dubbo架构图中,可以看到注册中心(Registry)位于顶端,所有的服务治理相关的操作都围绕它进行。服务提供者(Provider)注册到注册中心,服务消费者(Comsumer)到注册中心订阅,同时,注册中心中的变更也会通知服务消费者。

2)SpringCloud中的注册中心

目前,SpringCloud可以说是最流行的微服务架构,SpingCloud整个体系功能完备,与Spring框架完美契合,开箱即用,极大降低了落地微服务架构的开发成本。在SpringCloud中,也是支持多种注册中心的:

  • Spring Cloud Netflix Eureka
  • Spring Cloud Zookeeper
  • Spring Cloud Consul

以上三种,最常用的主要是Eureka,官方是这样定义的:

Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.

与Dubbo对于服务注册的抽象有所不同,Eureka使用的是C/S架构:

  • Eureka Server,注册中心
  • Eureka Client,服务消费者和服务提供者

而且,Eureka支持多节点的部署,从而保证高可用。生产环境中,常用的方式是部署两台节点,做成一个P2P的集群。

注册中心—注册中心原理相关推荐

  1. Nacos 注册中心主要贡献者详解注册中心的设计原理

    服务发现是一个古老的话题,当应用开始脱离单机运行和访问时,服务发现就诞生了. 目前的网络架构是每个主机都有一个独立的 IP 地址,那么服务发现基本上都是通过某种方式获取到服务所部署的 IP 地址.DN ...

  2. python consul配置中心_微服务注册发现配置中心-consul

    Consul详解 近期在微服务业务中用的注册中心,在此简单记录下以备后用. 一 概述 1.1 概念 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.Con ...

  3. 服务注册与发现用mysql_yeasul: 轻量级服务注册与发现中心,具有健康检查功能。...

    yeasul 亿联定制版服务注册与发现中心,具备心跳检测功能,由于接口参考了consul,所以取名为yeasul. 项目架构 使用Java语言开发,依赖于MySQL 8.0数据库,基于Spring B ...

  4. dedeCMS 会员中心注册登陆页面 - 模板修改

    dedeCMS 会员中心:注册登陆页面(logo.版权信息等)的修改问题 一. 模板文件路径及修改业务: 文件名 member\templets\ 涉及页面 修改业务 涉及图片名称 reg-new.h ...

  5. 企业网站+Axure企业官网通用模板+公司官网通用模板+web端高保真原型+门户官网+物流企业+门户网站+服务中心+产品中心+新闻中心+帮助中心+企业官网+公司官网+公司网站+登录注册+高保真交互

    企业网站+Axure企业官网通用模板+公司官网通用模板+web端高保真原型+门户官网+物流企业+门户网站+服务中心+产品中心+新闻中心+帮助中心+企业官网+公司官网+公司网站+Axure原型+rp原型 ...

  6. Consul注册中心注册的服务总是红叉 (All service checks failing)

    Consul注册中心注册的服务总是红叉 (All service checks failing) Consul注册中心注册的服务总是红叉 (All service checks failing) 因为 ...

  7. 中国版权保护中心注册流程(含实名认证)

    中国版权保护中心注册流程(含实名认证) https://register.ccopyright.com.cn/login.html 需要使用图片大小小于5.00MB的图片 注册成功 请耐心等待审核

  8. spring cloudAlibaba gateway网关报错,显示无法找到注册中心注册自己。

    spring cloudAlibaba gateway网关报错,显示无法找到注册中心注册自己. 1.错误提示 2020-12-29 11:10:18.521 WARN 232 --- [freshEx ...

  9. 服务无法注册到注册中心解决

    启动服务的时候报了这个错误 org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean ...

最新文章

  1. iOS UITextField输入框随键盘弹出界面上移
  2. paddle版fnet_google
  3. 网站seo优化每天需要做哪些事情呢?
  4. JSP/Servlet基础语法
  5. 信息系统项目管理知识--项目配置管理
  6. Arrays.copyOf()、Arrays.copyOfRange()与System.arraycopy()用法
  7. java的reflection机制_Java的Reflection机制
  8. php开发添加表情功能,WordPress网站评论区如何实现添加表情包功能?
  9. 关于非堆内存申请的性能测试
  10. linux查看内存条pn,内存条,详细教您怎么查看内存条的型号
  11. 数字图像处理-空间滤波
  12. 逆向之汇编(堆栈平衡函数)
  13. power-law 之Zipf
  14. Linux驱动曝光AMD Vega20核心
  15. android+复制大文件,手机SD卡无法复制拷贝大文件的解决方法
  16. Pycharm this applicatation failed to start because it could not find or laod the qt plaform plugin
  17. Python自动化完成tb喵币任务V2.0
  18. 通过SnmpWalk获取服务器状态信息
  19. macos esc按键失效,无法退出vim
  20. scrapy_splash基本使用

热门文章

  1. 人口问题,怎样的生育率才能保持正常的世代更替?
  2. (转) Core Animation 简介
  3. H.264编码profile level控制
  4. springMVC接收前端参数的方式
  5. Eclipse 各版本版本号代号对应一览表
  6. ie11 不能调试 因为 ie的bug
  7. Excel 公式(细节若干)
  8. 让SignalR客户端回调支持强类型
  9. POJ 2823-Sliding Window单调队列解题报告
  10. 安卓工业平板电脑的蓝牙开发教程