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

本文主要内容:

本文来源:本文由凯哥Java(kaigejava)发布在博客园博客的。转载请注明

1:Eureka执行步骤理解

2:集群原理

3:Eureka集群搭建

4:修改payment和order项目注册到集群中

本文是由凯哥(凯哥Java:kagejava)发布的《spring cloud系列教程》教程的总第六篇:《spring cloud系列教程第六篇-Eureka集群版》。

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

一:eureka注册与发现步骤

服务注册:将服务信息注册到注册中心

服务发现:从注册中心上获取到服务信息

其实质就是:key-value形式的。Key:服务的名字 value:服务调用地址

执行步骤:

1:先启动eureka注册中心

2:启动服务提供者(我们这里的服务提供者就是payment支付服务)

3:服务提供者在启动后会把自身的信息(如服务地址,以别名方式注册到)注册到eureka中

4:消费者(我们这里是order服务)在需要调用接口的时候,使用服务别名去注册中心获取到实际的RPC远程调用地址

5:消费者获取到调用地址后,底层实际是利用HttpClient技术实现远程调用的

6:消费者获得服务地址后会缓存在本地的JVM内存中,默认每隔30秒更新移除服务调用地址。

问题:微服务RPC远程调用最核心的是什么?

高可用。试想下,如果你的注册中心有且仅有一个 only One.那么,如果注册中心故障了,那就呵呵了,会导致整个服务的不可用。后果可是很严重的。所以,解决办法就是:搭建Eureka注册中心集群。实现负载均衡+故障容错(其实从上图中也可以看出,eureka server是多个,provider也是多个)

二:Eureka集群原理:

互相注册,相互守望

什么意思呢?集群的话,肯定是多个。比如我们现在单台的eureka端口是7001,假设还有一台服务是7002.那么7001的注册地址应该是7002,7002的注册地址是7001.这样就相互注册了。7001会每30s给7002同步一次心跳,同理7002也会的。所以就相互守望了。

简单的示意图如下:

三:Eureka集群搭建

3.1:新建cloud-eureka-server7002项目。作为第二台eureka服务

3.2:修改pom.将7001的pom中相关依赖复制到7002中

3.3:修改hosts文件。添加两个映射:

修改后的hosts:

3.4:修改yml文件。

在修改yml文件的时候,需要注意:现在是多台eureka server。需要互相注册和相互守望。这个的写法和单机版的不一样了。我们先来看看单机版yml配置文件。

单机版yml文件配置:

集群的时候,因为要互相注册,相互守望。所以yml文件有些不同。

7001服务的yml不同地方:

7002的yml:

我们可以看到hostname和defaultZone不同了

配置完成之后,启动7001和7002,访问两个连接查看有什么不同

我们可以看到,DS Replicas的不同。

当我们访问7001的时候,可以看到ds列表是eureka7002说明我们集群配置已建成成功了。

本文教程相关代码版本号:v0.0.9-20200504

接下来,我们就要修改payment和order这两个微服务,将这两个微服务注册到eureka集群中。欢迎大家和凯哥(凯哥Java:kaigejava)继续一起学习。

四:将payment和order这两个服务注册到集群中

4.1:payment修改

只需要修改payment8001的yml文件中,和eureka相关的配置即可。

我们开看看单机版的时候配置:

Eureka.client.service-url.defaultZone是localhost的。如下图:

进行修改:

Order80的修改一样。

配置完成之后,启动服务进行测试。

启动顺序:

先启动注册中心服务:eurekaSever 7001/7002服务

再启动服务提供者:payment8001服务

再启动服务提供者:payment8001服务

访问根据订单id获取连接,查看返回信息

查看7001上注册的eureka客户端:

查看7002上客户端:

我们发现这两个注册中心都有order server和payment server服务。说明我们服务已经成功注册到集群中了。

查看访问效果:

可以正常访问。说明集群搭建及服务注册到集群中成功。

spring cloud系列教程第六篇-Eureka集群版的更多相关文章

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

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

  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系列教程第九篇-Eureka自我保护机制

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

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

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

  6. Spring cloud系列教程第二篇:支付项目父工程图文搭建

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

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

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

  8. Spring Cloud系列(四):Eureka源码解析之客户端

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

  9. Spring Cloud系列(二):Eureka应用详解

    一.注册中心 1.注册中心演变过程 2.注册中心必备功能 ① 服务的上线 ② 服务的下线 ③ 服务的剔除 ④ 服务的查询 ⑤ 注册中心HA ⑥ 注册中心节点数据同步 ⑦ 服务信息的存储,比如mysql ...

随机推荐

  1. 2019 ICPC 银川网络赛 D. Take Your Seat (疯子坐飞机问题)

    Duha decided to have a trip to Singapore by plane. The airplane had nn seats numbered from 11 to nn, ...

  2. 题解 CF160B 【Unlucky Ticket】

    本文为UserUnknown原创 思路 这道题应该怎么做? 可以把输入的数字逐位拆分后存入数组,就像这样存进去: int a[N],b[N] tmp=n; k=1; while(--tmp){ a[k ...

  3. Java 创建并应用PPT幻灯片母版

    幻灯片母版,可在幻灯片中预先存储设计模板信息,包括字形.占位符大小或位置.背景设计和配色方案等:对设定好的母版可应用于所有幻灯片,也可设计多个不同母版应用于不同幻灯片.下面通过Java代码示例介绍如何 ...

  4. 在web中使用shiro(会话管理,登出,shiro标签库的使用)

    在shiro的主配置文件中配置,登出的请求经过的过滤器就可以了,在shiro的过滤器中有一个名称为logout的过滤 器专门为我们处理登出请求: 一.shiro会话管理器 shiro中也提供了类似于w ...

  5. 如何选择IO调度器

    概述 由于对multi-quque的IO调度算法不太熟悉,为了避免误人子弟,本文暂时只会介绍如何选择single-queue的IO调度算法.等将来对multi-queue有充分认识后再补充. 如果不清 ...

  6. 【认证与授权】Spring Security自定义页面

    在前面的篇幅中,我们对认证和授权流程大致梳理了一遍.在这个过程中我们一直都是使用系统生成的默认页面,登录成功后也是直接调转到根路径页面.而在实际的开发过程中,我们是需要自定义登录页面的,有时还会添加各 ...

  7. 物流配送中心管理系统(SSM+MYSQL)

    工程项目视频观看地址:www.toutiao.com/i6804066711… 本文首先对系统所涉及到的基础理论知识进行阐述,并在此基础上进行了系统分析.系统分析是平台开发的一个不可缺少的环节,为了能 ...

  8. 【FPGA技巧篇一】FPGA设计的四种常用思想与技巧之一 :乒乓操作

    本文篇章将讨论一下的四种常用 FPGA 设计思想与技巧: 乒乓操作. 串并转换. 流水线操作. 数据接口同步化, 都是 FPGA 逻辑设计的内在规律的体现, 合理地采用这些设计思想能在FPGA设计工作 ...

  9. BOM基础

    BOM基础 打开窗口 window.open('about:blank','_blank') 第一个参数是打开哪一个口,第二个参数是在哪里打开窗口. 关闭窗口 window.close() windo ...

  10. 【HDU4991】树状数组

    http://acm.hdu.edu.cn/showproblem.php?pid=4991 用f[i][j] 表示 前i个数以第i个数结尾的合法子序列的个数,则递推式不难写出: f[i][j] = ...