spring cloud系列教程第六篇-Eureka集群版
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集群版的更多相关文章
- spring cloud系列教程第四篇-Eureka基础知识
通过前三篇文章学习,我们搭建好了两个微服务工程.即:order80和payment8001这两个服务.有了这两个基础的框架之后,我们将要开始往里面添加东西了.还记得分布式架构的几个维度吗?我们要通过一 ...
- Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇
Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇 本文主要内容: 1:spring cloud整合Eureka总结 本文是由凯哥(凯哥Java:kagejava ...
- spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息
spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息 本文主要内容: 1:管理页面主机名及访问ip信息提示修改 2:获取当前注册中心的服务列表及每个服务对于的服务提供者列表 ...
- Spring Cloud系列教程第九篇-Eureka自我保护机制
Spring Cloud系列教程第九篇-Eureka自我保护机制 本文主要内容: 1:自我保护介绍 2:导致原因分析 3:怎么禁止自我保护 本文是由凯哥(凯哥Java:kagejava)发布的< ...
- spring cloud系列教程第一篇-介绍
spring cloud系列教程第一篇-介绍 前言: 现在Java招聘中最常见的是会微服务开发,微服务已经在国内火了几年了,而且也成了趋势了.那么,微服务只是指spring boot吗?当然不是了,微 ...
- Spring cloud系列教程第二篇:支付项目父工程图文搭建
Spring cloud系列教程第二篇:支付项目父工程图文搭建 在讲解spring cloud相关的技术的时候,咱们就模拟订单支付这个流程来讲讲 在这个支付模块微服务搭建过程中,上面的这些技术,都会融 ...
- Spring Cloud系列(三):Eureka源码解析之服务端
一.自动装配 1.根据自动装配原理(详见:Spring Boot系列(二):Spring Boot自动装配原理解析),找到spring-cloud-starter-netflix-eureka-ser ...
- Spring Cloud系列(四):Eureka源码解析之客户端
一.自动装配 1.根据自动装配原理(详见:Spring Boot系列(二):Spring Boot自动装配原理解析),找到spring-cloud-netflix-eureka-client.jar的 ...
- Spring Cloud系列(二):Eureka应用详解
一.注册中心 1.注册中心演变过程 2.注册中心必备功能 ① 服务的上线 ② 服务的下线 ③ 服务的剔除 ④ 服务的查询 ⑤ 注册中心HA ⑥ 注册中心节点数据同步 ⑦ 服务信息的存储,比如mysql ...
随机推荐
- 数学--数论--HDU 12151七夕节
七夕节 Problem Description 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!&q ...
- JAVA大数--POJ 1715 大菲波数
Problem Description Fibonacci数列,定义如下: f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3. 计算第n项Fibonacci数值. Inp ...
- CF1316E Team Building
CF1316E [Team Building] 状压dp,感觉比D简单 \(f[i][s]\),表示考虑前\(i\)个人,状态为\(s\)(\(s\)的第\(j-1\)个二进制位表示队员的第\(j\) ...
- Java中的内存
目录 栈(Stack):存放的都是方法中的局部变量.方法的运行一定要在栈当中. 堆(Heap):凡是new出来的东西,都在堆内存当中 方法区(Method Area):存储.class相关信息,包含方 ...
- spring中bean的常用属性
一.scop scope用来配置bean对象是否是单例模式.单例模式是java的二十三种设置模式之一,指在这个项目运行过程中一 个类的对象只会实例化一次.一般,工厂类的对象都是单例模式.非单例模式叫多 ...
- Linux(Ubuntu) MySQL数据库安装与卸载
安装 修改远程访问 卸载 安装 首先检查系统中是否已经安装了MySQL sudo netstat -tap | grep mysql 没有显示已安装结果,则没有安装 如若已安装,可以选择删除.(删除方 ...
- Spring Cloud 系列之 Config 配置中心(一)
服务配置现状 配置文件是我们再熟悉不过的,在微服务系统中,每个微服务不仅仅只有代码,还需要连接其他资源,例如数据库的配置或功能性的开关 MySQL.Redis .Security 等相关的配置.除了项 ...
- 【Kafka】配置文件说明
目录 server.properties producer.properties consumer.properties server.properties # broker的全局唯一编号,不能重复 ...
- FOC中的Clarke变换和Park变换详解(动图+推导+仿真+附件代码)
文章目录 1 前言 2 自然坐标系ABC 3 αβ\alpha\betaαβ 坐标系 3.1 Clarke变换 3.2 Clarke反变换 4 dqdqdq 坐标系 4.1 Park变换 正转 反转 ...
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
堆和栈的区别 一个由C/C++编译的程序占用的内存分为以下几个部分1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2.堆区(heap ...