当前位置:网站首页>Eureka服务注册与发现
Eureka服务注册与发现
2022-06-22 20:30:00 【喵先森爱吃鱼】
一、微服务的注册中心
注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其他服务时,就会在这里找到服务的地址,进行调用。
1.1 注册中心的主要作用
服务注册中心(下称注册中心)是微服务架构非常重要的一个组件,在微服务架构里主要起到了协调者的作用。注册中心一般包含如下几个功能:
1、服务发现:
- 服务注册/反注册:保存服务提供者和服务调者的信息
- 服务订阅/取消订阅:服务调用者订阅服务提供者的信息,最好有实时推送的功能
- 服务路由(可选):具有筛选整合服务提供者的能力
2、服务配置:
- 配置订阅:服务提供者和服务调用者订阅微服务相关的配置
- 配置下发:主动将配置推送给服务提供者和服务调用者
3、服务健康检测
- 检测服务提供者的健康状况
1.2 常见的注册中心
Zookeeper
Zookeeper 是一个分布式服务框架,是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。简单来说 Zookeeper = 文件系统 + 监听通知机制。
Eureka
Eureka 是在 Java 语言上,基于 RESTful API 开发的服务注册与发现组件,SpringCloud Netflix 中的重要组件。
Consul
Consul 是由 HashiCorp 基于 Go 语言开发的支持多数据中心分布式高可用的服务发布和注册服务软件,采用 Raft 算法保证服务的一致性,且支持健康检查
Nacos
Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。简单来说 Nacos 就是注册中心 + 配置中心的组合,提供简单易用的特性集,帮助我们解决微服务开发必会涉及到的服务注册与发现,服务配置,服务管理等问题。Nacos 还是 SpringCloud Alibaba 组件之一,负责服务注册与发现。
| 组件名 | 语言 | CAP | 一致性算法 | 服务健康检查 | 对外暴露接口 |
|---|---|---|---|---|---|
| Eureka | Java | AP | 无 | 可配支持 | HTTP |
| Consul | Go | CP | Raft | 支持 | HTTP/DNS |
| Zookeeper | Java | CP | Paxos | 支持 | 客户端 |
| Nacos | Java | AP | Raft | 支持 | HTTP |
二、Eureka 的概述
2.1 Eureka 的基础知识
Eureka 是 Netflix 开发的服务发现框架,SpringCloud 将它集成在自己的子项目 spring-cloud-netflix 中,实现 SpringCloud 的服务发现功能。
上图简要描述了 Eureka 的基本架构,由 3 个角色组成:
1、Eureka Server
- 提供服务注册和发现
2、Service Provider
- 服务提供方
- 将自身服务注册到 Eureka,从而使服务消费方能够找到
3、Service Consumer
- 服务消费方
- 从 Eureka 获取注册服务列表,从而能够消费服务
2.2 Eureka 的交互流程与原理

图是来自 Eureka 官方的架构图,大致描述了 Eureka 集群的工作过程。图中包含的组件非常多,解释一下:
- Application Service 相当于服务提供者,Application Client 相当于服务消费者
- Make Remote Call,可以简单理解为调用 RESTful API
- us-east-1c、us-east-1d 等都是 zone,它们都属于 us-east-1 这个 region
关于 zone 和 region 的介绍可以看下这篇文章:eureka分区的深入讲解
由图可知,Eureka 包含两个组件:Eureka Server 和 Eureka Client,它们的作用如下:
- Eureka Client 是一个 Java 客户端,用于简化与 Eureka Server 的交互;
- Eureka Server 提供服务发现的能力,各个微服务启动时,会通过Eureka Client 向 Eureka Server 进行注册自己的信息(例如网络信息),Eureka Server 会存储该服务的信息
- 微服务启动后,会周期性地向 Eureka Server 发送心跳(默认周期 30 秒)以续约自己的信息。如果 Eureka Server 在一定时间内没有接收到某个微服务节点的心跳,Eureka Server 将会注销该微服务节点(默认 90 秒)
- 每个 Eureka Server 同时也是 Eureka Client,多个 Eureka Server 之间通过复制的方式完成服务注册表的同步
- Eureka Client 会缓存 Eureka Server 中的信息。即使所有的 Eureka Server 节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者。
综上,Eureka 通过心跳检测、健康检查和客户端缓存等机制,提高了系统的灵活性、可伸缩性和可用性。
边栏推荐
- Cannot re register id: pommeffacompetition-v0 problem solving
- Campus errand management app Shaanxi Gechuang
- CyCa children's physique etiquette Shenzhen training results assessment successfully concluded
- 什么是数据资产?数据资产管理应该如何落地?
- Ten thousand words long text | use RBAC to restrict access to kubernetes resources
- A hundred lines of code to realize reliable delay queue based on redis
- CYCA少儿形体礼仪 深圳市培训成果考核圆满落幕
- Introduce sparse activation mechanism! Uni perceiver MOE significantly improves the performance of generalist model
- Redis core technology and practice: learning summary directory
- Optimization solver | gurobi's Mvar class: a sharp tool for matrix modeling and an alternative solution to dual problems (with detailed cases and codes attached)
猜你喜欢

TC397 Flash
![Jerry's problem of opening the near end of four channel call [chapter]](/img/54/d74a90e37deb2d3929f019d695f9ee.png)
Jerry's problem of opening the near end of four channel call [chapter]

Lesson 018: function: flexible is powerful after class test questions and answers

For an unforgettable memory: special topic of Sun Jian

杰理之开启四声道通话近端卡顿问题【篇】

Leetcode daily question - 513 Find the value in the lower left corner of the tree

Optimization solver | gurobi's Mvar class: a sharp tool for matrix modeling and an alternative solution to dual problems (with detailed cases and codes attached)

Introduce sparse activation mechanism! Uni perceiver MOE significantly improves the performance of generalist model

7-1 creating a binary tree from a preorder sequence

6-6 图的广度遍历-邻接矩阵实现
随机推荐
What is a data asset? How should data asset management be implemented?
6-1 operation set of binary search tree
An example of 89 Oracle SQL writing and optimizer defects
79- do not create desc descending index when you see order by XXX desc - there is book donation benefit at the end of the article
Lesson 020: functions: embedded functions and closures | after class test questions and answers
VS代码一键整理快捷键
Lesson 028: Documents: because I know you, I will never forget the after-school test questions and answers [no title]
Lesson 016: sequence | after class test questions and answers
Redis核心技术与实战:学习总结目录
PMP Exam admission ticket problems and precautions in June, which must be read by candidates
杰理之开启四声道通话近端变调问题【篇】
二级造价工程师考前必备15个知识点来了!祝你旗开得胜!
Share deadlock problems encountered in insert into select (project practice)
Can the characteristics of different network structures be compared? Ant & meituan & NTU & Ali proposed a cross architecture self supervised video representation learning method CaCl, performance SOTA
DACL output on Jerry's hardware, DAC output sound of left and right channels [chapter]
Watch,computed和methods的区别
科研热点|官宣!2022年JCR分区和影响因子发布时间确定!
什么是数据资产?数据资产管理应该如何落地?
杰理之AUX 模式使用 AUX1或者 AUX2通道时,程序会复位问题【篇】
ACM. Hj24 chorus ●●