spring cloud系列教程第四篇-Eureka基础知识

时间:2022-11-25 09:19:50

通过前三篇文章学习,我们搭建好了两个微服务工程。即:order80和payment8001这两个服务。有了这两个基础的框架之后,我们将要开始往里面添加东西了。还记得分布式架构的几个维度吗?我们要通过一个一个维度来讲解每个知识点。如下图:

spring cloud系列教程第四篇-Eureka基础知识

任何一个分布式或者是微服务都会需要一个服务注册中心。用来服务的注册与发现。所以,我们就来先从服务注册中心这个维度来开讲。先来讲讲今年之前比较流行的一个技术:Eureka.

本文主要内容:

1:服务治理的理解

2:服务注册与发现的理解

3:Eureka两个组件

4:总结

本文是由凯哥(凯哥Java:kagejava)发布的《spring cloud系列教程》教程的总第四篇:《spring cloud系列教程第四篇-Eureka基础知识》。

本文是几个维度中的第一个维度:注册与发现维度配置中心管理之Eureka相关教程第一篇。

什么是服务治理?

在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,在这种情况下,我们就需要使用到服务治理了。管理服务与服务之间的依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册的技术。

Spring cloud 封装了Netflix公司开发的Eureka模块来实现服务治理。

什么是服务注册与发现?

Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到Eureka Server并维持心跳连接。这样系统的维护人员就可以通过Eureka Server来监控系统中各个服务是否正常运行。

在服务注册与发现中,有一个注册中心。当服务器启动的时候,会把当前自己服务器信息(比如:服务地址、通讯地址等)以别名的方式注册到注册中心上。另一方(消费者服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,然后再实现本地RPC调用RPC。远程调用框架核心思想:在与注册中心,因为使用注册中心管理每个与服务之间的一个依赖关系(服务治理概念)。在任何RPC远程框架中,都会有一个注册中心(存放服务地址相关的信息:接口地址)。

下图是Eureka系统架构与dubbo系统架构的对比:

spring cloud系列教程第四篇-Eureka基础知识

简单理解provider、consumer和Eureka 注册中心的关系。

spring cloud系列教程第四篇-Eureka基础知识

比如,现在你在某个平台上正在看凯哥发布的这篇文章。其中自媒体平台就是一个注册中心,你和凯哥就是一个消费者,一个生产者。

凯哥需要在平台上注册一个账号,进行发布文章。充当生产者的角色;

你需要访问(或者是注册)平台,进行文章浏览。其实充当的就是消费者了。

这样来说,关系是不是就很好理解了。

Eureka的两个组件

spring cloud系列教程第四篇-Eureka基础知识

Eureka Server提供服务的注册服务.

各个微服务节点通过配置启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所服务节点的信息,服务节点的信息可以在接口中直观的看到。

Eureka Client通过注册中心进行访问

是一个Java客户端,用与简化Eureka Server的交互,客户端同时也具备一个内置的,使用轮询(round-robin)的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30s)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除掉(默认90s,也就是3个心跳周期).

总结

spring cloud系列教程第四篇-Eureka基础知识

本文主要让大家记住Eureka的两个组件。分别是seriver和client.客户端默认每30秒向服务发送一次心跳请求,用与告诉服务端,我还是可用的。如果服务端默认3个心跳周期,也就是在90秒没有收到某个客户端发送的心跳信息后,服务端将会从服务注册表把对应的服务节点移除掉。因为服务端会认为这个客户端不可用了。

下篇预告:在下一篇文章中,我们来讲讲单机办的Eureka构建步骤

spring cloud系列教程第四篇-Eureka基础知识

spring cloud系列教程第四篇-Eureka基础知识的更多相关文章

  1. spring cloud系列教程第六篇-Eureka集群版

    spring cloud系列教程第六篇-Eureka集群版 本文主要内容: 本文来源:本文由凯哥Java(kaigejava)发布在博客园博客的.转载请注明 1:Eureka执行步骤理解 2:集群原理 ...

  2. Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇

    Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇 本文主要内容: 1:spring cloud整合Eureka总结 本文是由凯哥(凯哥Java:kagejava ...

  3. spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息

    spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息 本文主要内容: 1:管理页面主机名及访问ip信息提示修改 2:获取当前注册中心的服务列表及每个服务对于的服务提供者列表 ...

  4. Spring Cloud系列之Commons - 1. 背景与基础知识准备

    本文基于 Spring Cloud 2020.0 发布版的依赖 本系列会深入分析 Spring Cloud 的每一个组件,从Spring Cloud Commons这个 Spring Cloud 所有 ...

  5. Spring Cloud系列教程第九篇-Eureka自我保护机制

    Spring Cloud系列教程第九篇-Eureka自我保护机制 本文主要内容: 1:自我保护介绍 2:导致原因分析 3:怎么禁止自我保护 本文是由凯哥(凯哥Java:kagejava)发布的< ...

  6. spring cloud系列教程第一篇-介绍

    spring cloud系列教程第一篇-介绍 前言: 现在Java招聘中最常见的是会微服务开发,微服务已经在国内火了几年了,而且也成了趋势了.那么,微服务只是指spring boot吗?当然不是了,微 ...

  7. Spring cloud系列教程第二篇&colon;支付项目父工程图文搭建

    Spring cloud系列教程第二篇:支付项目父工程图文搭建 在讲解spring cloud相关的技术的时候,咱们就模拟订单支付这个流程来讲讲 在这个支付模块微服务搭建过程中,上面的这些技术,都会融 ...

  8. Spring Cloud系列(三):Eureka源码解析之服务端

    一.自动装配 1.根据自动装配原理(详见:Spring Boot系列(二):Spring Boot自动装配原理解析),找到spring-cloud-starter-netflix-eureka-ser ...

  9. Spring Cloud架构教程 (四)服务网关(路由配置)

    传统路由配置 所谓的传统路由配置方式就是在不依赖于服务发现机制的情况下,通过在配置文件中具体指定每个路由表达式与服务实例的映射关系来实现API网关对外部请求的路由. 没有Eureka和Consul的服 ...

随机推荐

  1. win10如何100&percnt;提升网络速度

    1.Win+R运行,输入gpedit.msc 2.依次打开"计算机配置"-"管理模板"-"网络"-"QoS数据包计划程序&quot ...

  2. javascript笔记:流程控制语句

    一.条件语句 1.if语句 if 语句即条件判断语句,一共有三种格式: (1)if (条件表达式) 语句: var box = 100; if (box >50) { alert('box大于5 ...

  3. CNN 美国有线电视新闻网 wapCNN WAP 指无线应用通讯协议 ---- 美国有线电视新闻网 的无线应用

    wapCNN  wap指无线应用通讯协议  CNN美国有线电视新闻网   固, wapCNN 美国有线电视新闻网的无线应用 -------------------------------------- ...

  4. 用DataSet方式更新数据库表

    /* 用DataSet的方式更新数据库表 * 注意:用DataSet更新数据库表的时候,该表必须指定主键或者是唯一列 */ string connString = "Data Source= ...

  5. white-space详解

    white-space共有5种属性normal,nowrap,pre,pre-wrap,pre-line 网上的解释多半过于详细冗长,先做个简化处理,以便查询 normal    忽略空白  过长换行 ...

  6. qt中进程的使用

    qt中的进程使用需要用到头文件:include<QProcess> 首先来看看需要用到的主要的函数 (1)进程的定义: QProcess *mprocess; //定义一个进程参数 (2) ...

  7. vue给元素动态添加class

    <p class="answerNum2" v-text="iteme.sel_num" :class="{letter: num }&quot ...

  8. auxre7使用安装

    auxre7安装     1● auxre7下载 2● 安装 D:\soft   axureuser 8wFfIX7a8hHq6yAy6T8zCz5R0NBKeVxo9IKu+kgKh79FL6IyP ...

  9. MAIN&sol;autoslb&period;py &CenterDot; 林語&sol;autoslb - 码云 - 开源中国

    MAIN/autoslb.py · 林語/autoslb - 码云 - 开源中国 CloudXNS

  10. pick王菊?作为&OpenCurlyDoubleQuote;菊外人”的程序员能做点什么?

    转载:https://mp.weixin.qq.com/s/s1cb9Ij6ouTYYCZovLhXTA 最近,想必大家的朋友圈都被“王菊”占领了,打开朋友圈到处可以见到“pick王菊”.“陶渊明”. ...