1、概述

    1.1  Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能;

    1.2  Spring Cloud通过为Eureka增加了Spring Boot风格的自动化配置,我们只需要通过简单引入依赖、注解配置就能让Spring Boot构建的微服务应用轻松地与Eureka服务治理体系进行整合;

    1.3  Spring Cloud Eureka包含了服务端组件、客户端组件,并且均采用java编写;

          Eureka服务端:

            也称为服务注册中心;

            同其他服务注册中心一样,支持高可用配置;

            在SpringBoot启动类通过@EnableEurekaServer注解启动一个注册中心;

          Eureka客户端:

            处理服务注册、服务发现;

            客户端通过@EnableDiscoveryClient注解和参数配置的方式,嵌入在客户端应用程序的代码中

                在应用程序运行时,Eureka客户端向注册中心(Eureka服务端)注册自身提供的服务并周期性地发送心跳来更新它的服务租约;

                Eureka客户端也能从服务端查询当前注册的服务信息并把它们缓存到本地并周期性地刷新服务状态;

2、服务治理:

    微服务架构中最为核心、基础的模块;

    作用:实现各个微服务实例的自动化注册与发现

    为了解决微服务架构中的服务实例维护问题,产生了大量的服务治理框架和产品,这些框架和产品的实现都围绕着服务注册、服务发现机制来完成对微服务应用实例的自动化管理;

        1.1  服务注册

               在服务治理框架中,通常会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机与端口号、版本号、通信协议等一些附加信息告知注册中心,注册中心按服务名分类组织服务清单;

                

        1.2  服务发现

                由于在服务治理框架下运作,服务间的调用不再通过指定具体的实例地址来实现,而是通过向服务名发起请求调用实现;

                服务调用方在调用服务提供方接口的时候,并不知道提供方的服务实例的具体位置,需要向服务注册中心咨询服务,并获取所有服务实例清单,以实现对具体实例的访问;

3、高可用注册中心

    1.1  在Eureka的服务治理设计中,所有的节点既是服务提供方,也是服务消费方,服务注册中心也一样;

        Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样可以形成一组互相注册的服务注册中心,以实现服务清单的互相同步,达到高可用的效果;

    1.2  暂搁置

4、服务发现与消费

    1.1  服务发现的任务由Eureka的客户端完成;

    1.2  服务消费Ribbon完成;

          Ribbon

            一个基于HTTP和TCP的客户端负载均衡器;

            通过在客户端中配置的ribbonServerList服务端列表去轮询访问以达到负载均衡的作用;

            当Ribbon和Eureka联合使用时,Ribbon的服务实例清单RibbonServerList会被DiscoveryEnableNIWSServerList重写,扩展成从Eureka注册中心获取服务端列表,同时也会用NIWSDiscoveryPing来取代IPing,它将职责委托给Eureka来确定服务端是否已经启动;

5、Eureka详解

    1.1  基础架构

          服务注册中心:

             EurekaServer

          服务提供者:

             提供服务的应用,可以是Spring boot应用,也可以是其他技术平台(遵循Eureka通信机制的应用);

          服务消费者:

             消费者应用从服务注册中心获取服务列表,从而使消费者可以知道去哪调用其需要的服务;

    1.2  通信机制

          Eureka采用了     与平台无关性的   基于HTTP的Rest接口

          默认情况下,Eureka使用Jersey、XStream配合json作为Server与Client之间的通信协议:

              Jersey:JAX-RS的参考实现;

                JAX-RS:

                  java EE6引入的新技术,即java API for Restful Web Services;

              XStream:将对象序列化成json、反序列化为对象的一个java类库;

SpringCloud---服务治理---Spring Cloud Eureka的更多相关文章

  1. 【SpringCloud微服务实战学习系列】服务治理Spring Cloud Eureka

    Spring Cloud Eureka是Spring Cloud Netflix微服务中的一部分,它基于NetFlix Sureka做了二次封装,主要负责完成微服务架构中的服务治理功能. 一.服务治理 ...

  2. 服务治理-> Spring Cloud Eureka

    服务治理->搭建服务注册中心 服务治理可以说是微服务架构中最为核心和基础的模块, 它主要用来实现各个微服务 实例的自动化注册与发现. 为什么我们在微服务架构中那么需要服务治理模块呢?微服务 系统 ...

  3. 笔记:Spring Cloud Eureka 服务治理

    Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务 ...

  4. 第三章 服务治理:Spring Cloud Eureka

    Spring Cloud Eureka是Spring Cloud Netflix 微服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能.Spri ...

  5. Spring Cloud Eureka 服务治理

    Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务 ...

  6. 1 Spring Cloud Eureka服务治理

    注:此随笔为读书笔记.<Spring Cloud微服务实战> 什么是微服务? 微服务是将一个原本独立的系统拆分成若干个小型服务(一般按照功能模块拆分),这些小型服务都在各自独立的进程中运行 ...

  7. Spring Cloud微服务笔记(三)服务治理:Spring Cloud Eureka快速入门

    服务治理:Spring Cloud Eureka 一.服务治理 服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现. 1.服务注册: 在服务治理框架中,通常会构 ...

  8. 第三章 服务治理: Spring Cloud Eureka

    Spring Cloud Eureka是 Spring Cloud Netflix微服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能 服务治理 ...

  9. Spring cloud Eureka 服务治理(搭建服务注册中心)

    服务之类是微服务架构中最为核心的基础模块,它主要用来实现各个微服务实例的自动化注册和发现. 1. 服务注册 在服务治理框架中,通常会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机. ...

随机推荐

  1. 转 Delphi中XLSReadWrite控件的使用(2)---基本应用

    unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

  2. 原型(Prototype)模式

    一. 原型(Prototype)模式 原型模式的用意是:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象. 从孙大圣的手段谈起 孙悟空在与黄风怪的战斗中 ...

  3. windows phone制作引导页

    适用于WP7 WP8+ 源码下载撸这里 制作动画gif小软件下载 小技巧 ①图片是纯色背景:将页面设置跟图片背景一样颜色 ②图片是渐变or其他,切图时候:单独切背景(页面设置这个为背景)跟图片里面元素 ...

  4. asp.net 设置分页

    private const int PAGESIZE = 5; //定义每页有五行数据 private void FillPageList() { int pageCount = 0; // page ...

  5. C#生成静态文件

    一般生成文件都是通过读取模板文件,然后替换标签. 这些古老的方法使用起来不但麻烦而且效率还不怎么样. 这里给添加介绍一个方法. 如果你用过asp.net.mvc (Razor),你就应该明白 chtm ...

  6. rsync 备份服务搭建(完成)

    rsync服务守护进程 服务器端配置过程: 1. 检查rsync是否安装: rpm -qa rsync 2.添加rsync服务的用户,管理本地目录 useradd-s /sbin/nologin -M ...

  7. 【leetcode 145. 二叉树的后序遍历】解题报告

    前往二叉树的:前序,中序,后序 遍历算法 方法一:递归 vector<int> res; vector<int> postorderTraversal(TreeNode* ro ...

  8. springboot项目部署运行(后台);端口被占用;

    打包: mvn clean package -Pprod -Dmaven.test.skip=true -Pprod 使用生产环境配置: -DskipTests,不执行测试用例,但编译测试用例类生成相 ...

  9. 导出当前python安装了哪些第三方模块+批量安装python模块

    pip freeze > mokuai.txt  #导出你当前python环境里面有哪写第三方模块 pip install -r mokuai.txt #从文件里面批量安装模块

  10. blog搬家须知

    我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻. 地址:这里. 不过这里也是会同步更新的