spring cloud 学习(二)关于 Eureka 的学习笔记

时间:2022-09-18 19:43:21

关于 Eureka 的学习笔记


个人博客地址 : https://zggdczfr.cn/ ,欢迎光临~


前言

Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。Spring Cloud将它集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务发现功能。
在Spring Cloud中,将会使用 Eureka 作为发现服务,所以了解 Eureka 是非常重要的。因此做了一下翻译以及学习笔记记录。
Eureka的Github:https://github.com/Netflix/Eureka

Eureka 笔记

什么是 Eureka?

Eureka 是基于 REST(Representational State Transfer)服务。主要用于AWS云中的定位/发现服务,从而实现对于中间层服务器的负载均衡(Load Balance)和故障切换(failover)。
同时,Eureka 还提供了一个基于JAVA的客户端组件(Eurake Client),便于与Eureka Server进行交互。在客户端中,同样内置了负载均衡,用于执行基本的负载均衡轮询制度。
而 Netflix 将它们集合成一个更加负载的负载均衡器,通过对流量、资源使用等因素,提供了更加合理的加权负载均衡策略服务。Eureka 具有心跳检测、健康检查和客户端缓存等多种机制提高了服务系统的灵活性。

什么是AWS云?

对于AWS云,可以参考一下这篇博文 http://blog.csdn.net/awschina/article/details/17639191
感觉 Eureka 就是为了提供对于 AWS云服务 的补充(中间层负载均衡)。

什么是中间层(Middle Tier)?

上面老是提到了中间层(Middle Tier)。中间层 (Middle Tier)也称作“应用程序服务器层或应用服务层”,是用户接口或 Web 客户端与数据库之间的逻辑层。典型情况下 Web 服务器位于该层,业务对象在此实例化。(来源于百度百科)

Eureka 目的/优点

  • 中间层的负载均衡
  • 使用 Netflix 的红/黑部署(red/black deployments),使开发者更加容易实现云部署
  • 对于 cassandra deployments,方便于对实例化后的对象维护
  • 利用 memcached 提供缓存服务(Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。)。
  • 可配置性/动态配置。使用Eureka,可以即时添加或删除群集节点;Eureka使用archaius(Netflix开源的配置管理类):如果你有一个配置源实现,这些配置可以进行动态调整应用。

Eureka 最大的特性

Eureka 集群服务具有极大的”弹性”(Resilience)。这个是我认为它最大的特点。
* Eureka Client 处理一个或多个Eureka服务器的故障。 由于 Eureka Client 在其中具有注册表缓存信息,因此即使所有 Eureka Servers 都关闭,它们还是可以很好地运行。
* Eureka Servers 即使在其他 Eureka 挂了也具有极大的”弹性”。既是是在 Client 与 Server 的网络分裂(network partition)期间,Eureka Server 具有的内部弹性特性也能防止大规模服务中断。

Eureka Server 与 Client 之间的通信

Eureka 只是找到有关客户端与之通信的服务器的信息,但不对通信的协议或方法施加任何限制。通常情况下,我们可以使用 Eureka 获取目标服务器地址,并使用thrift,http(s)或任何其他RPC机制等协议来进行交互通信。

Eureka 架构

spring cloud 学习(二)关于 Eureka 的学习笔记
上图为 Eureka 官方架构图。
接下来,对其中的名词进行解释:

  • Application Service 相当于服务提供者
  • Application Client 相当于服务消费者
  • Make Remote Call,其实就是实现服务的使用
  • us-east-1 其实实现了Eurake 集群服务
  • us-east-1c、us-east-1d、us-east-1e 就是集群服务中的某个具体实现区域(感觉找不到一个合适的词来解释这种抽象的概念)

Eureka 架构机制
我们的 Eureka 集群服务其实就是靠 Server 与 Client 之间的交互来实现的。
1. 前面说过,Eureka Server 具有服务定位/发现的能力,在各个微服务启动时,会通过Eureka Client向Eureka Server进行注册自己的信息(例如网络信息)。
2. 一般情况下,微服务启动后,Eureka Client 会周期性向 Eureka Server 发送心跳检测(默认周期为30秒)以注册/更新自己的信息。
3. 如果 Eureka Server 在一定时间内(默认90秒)没有收到 Eureka Client 的心跳检测,就会注销掉该微服务点。
4. 同时,Eureka Server 它本身也是 Eureka Client,多个 Eureka Server 通过复制注册表的方法来完成服务注册表的同步从而达到集群的效果

spring cloud 学习(二)关于 Eureka 的学习笔记的更多相关文章

  1. Spring Cloud(二):服务注册与发现 Eureka【Finchley 版】

    Spring Cloud(二):服务注册与发现 Eureka[Finchley 版]  发表于 2018-04-15 |  更新于 2018-05-07 |  上一篇主要介绍了相关理论,这一篇开始我们 ...

  2. Spring Cloud(二):Eureka 服务注册中心

    前言 服务治理 随着业务的发展,微服务应用也随之增加,这些服务的管理和治理会越来越难,并且集群规模.服务位置.服务命名都会发生变化,手动维护的方式极易发生错误或是命名冲突等问题.而服务治理正是为了解决 ...

  3. (转)Spring Cloud(二)

    (二期)23.微服务框架spring cloud(二) [课程23]熔断器-Hystrix.xmind0.1MB [课程23]微服务...zuul.xmind0.2MB 熔断器-Hystrix 雪崩效 ...

  4. spring cloud 服务注册中心eureka高可用集群搭建

    spring cloud 服务注册中心eureka高可用集群搭建 一,准备工作 eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心 1 本文三台eu ...

  5. spring cloud: zuul(二): zuul的serviceId/service-id配置(微网关)

    spring cloud: zuul(二): zuul的serviceId/service-id配置(微网关) zuul: routes: #路由配置表示 myroute1: #路由名一 path: ...

  6. spring cloud 2.x版本 Eureka Server服务注册中心教程

    本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 1.创建服务注册中心 1.1 新建Spring boot工程:eureka-server 1 ...

  7. spring cloud 2.x版本 Eureka Client服务提供者教程

    本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 1 创建eureka client 1.1 新建Srping boot工程:eureka-c ...

  8. spring Cloud服务注册中心Eureka集群

    spring Cloud服务注册中心Eureka集群配置: 在application.yml文件加以下配置: server: port: 8761 tomcat: uri-encoding: UTF- ...

  9. 二、Spring Cloud之注册中心 Eureka

    前言 算是正式开始学习 spring cloud 的项目知识了,大概的知道Springcloud 是由众多的微服务组成的,所以我们现在一个一个的来学习吧. 注册中心,在微服务中算是核心了.所有的服务都 ...

随机推荐

  1. Oracle位图索引

    索引由KEY和Data组成 位图索引的KEY比普通非唯一性索引多包含一个组成部分,分区,分区是将数据按行由内部机制分段以达到比较好的检索效率 位图索引的Data中,该索引KEY中数据值在分区段中按行分 ...

  2. Git学习(三)——暂存区、远程仓库、增删改管理

    一.工作区和暂存区 工作区(Working Directory) 就是在你的电脑里能看到的目录 版本库(Repository) 工作区中的一个隐藏目录.git,这个不算工作区,而是Git版本库.Git ...

  3. Connect to EC2 if losing Private Key

    http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

  4. MVVM: 通过 x:Bind 实现 MVVM(不用 Command)

    背水一战 Windows 10 之 MVVM(Model-View-ViewModel) 通过 x:Bind 实现 MVVM(不用 Command) 示例1.ModelMVVM/Model/Produ ...

  5. ACM2096_小明A+B

    #include<iostream> int main() { using namespace std; int a,b,count; cin>>count; while(co ...

  6. MyBatis基础学习笔记--摘录

    1.MyBatis是什么? MyBatis源自于IBatis,是一个持久层框架,封装了jdbc操作数据库的过程,使得开发者只用关心sql语句,无需关心驱动加载.连接,创建statement,手动设置参 ...

  7. Mac下hosts文件配置

    工作中总会因为莫名其妙的原因,比如Mac下面打不开某网站,但是在windows 7下面却可以,此时只需两步即可完成在Mac下面上网.在Windows下面Win+R,输入cmd,进入命令行,将在wind ...

  8. opencv获取IP摄像头(IP-camera)实时视频流

    之前这篇文章讲了如何通过网络摄像头(web camera)获取实时视频流,但是这种方法的缺陷就是摄像头和主机必须连在一起,那这种在室外部署的时候就会非常麻烦并且不安全,所以后来找了下用海康威视或者大华 ...

  9. BZOJ4197 &lbrack;Noi2015&rsqb;寿司晚宴 【状压dp】

    题目链接 BZOJ4197 题解 两个人选的数都互质,意味着两个人选择了没有交集的质因子集合 容易想到将两个人所选的质因子集合作为状态\(dp\) \(n\)以内质数很多,但容易发现\(\sqrt{n ...

  10. python 带颜色样式打印到终端

    #!/usr/bin/python # -*- coding: utf-8 -*- """ Created on Tue Aug 8 17:01:54 2017 @aut ...