spring cloud系列教程第六篇-Eureka集群版
本文主要内容:
本文来源:本文由凯哥Java(kaigejava)发布在iteaye博客的。转载请注明
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服务。说明我们服务已经成功注册到集群中了。
查看访问效果:
可以正常访问。说明集群搭建及服务注册到集群中成功。
相关推荐
<artifactId>spring-cloud-starter-netflix-eureka-client <version>2.0.x.RELEASE ``` 接下来,我们需要配置Flowable的工作流引擎。在Spring Boot的配置文件`application.yml`或`application.properties`中,...
<artifactId>spring-cloud-starter-netflix-eureka-server ``` - **配置 Eureka Server**:在`application.yml`中添加Eureka Server的相关配置。 ```yaml server: port: 8761 eureka: client: register-...
Spring Cloud 是一个基于Java的微服务开发框架,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)操作的一系列...
【描述】中没有提供具体的信息,但我们可以推测这可能是某个系列教程的第八部分,可能涉及了Spring Cloud Alibaba框架的深入应用或新特性。 【标签】"es" 提示我们这个项目可能使用了Elasticsearch,一个流行的开源...
在本压缩包“springcloud第四章结束.zip”中,我们可以推断这包含了Spring Cloud相关的一系列代码示例或项目,这是关于微服务架构的一个热门框架。Spring Cloud是基于Spring Boot进行分布式系统开发的一系列工具集合...
5. **《Spring in Action》**: 这本书是Spring框架的经典教程,第四版详细介绍了Spring的各个方面,包括依赖注入、AOP、数据访问、Web开发以及Spring Boot和Spring Cloud等内容。通过阅读,开发者可以深入理解Spring...
根据提供的文件信息,我们可以推断出这是一份关于Spring Cloud高级教程的视频资料。下面将对Spring Cloud的一些核心概念、组件及其应用场景进行详细介绍。 ### Spring Cloud简介 Spring Cloud 是一个基于 Spring ...
2. **Spring Cloud Netflix**:包含Eureka(服务发现)、Zuul(API网关)、Hystrix(断路器)等组件,提供微服务架构中的关键功能。 3. **Spring Cloud Bus**:用于广播配置更改或执行轻量级跨服务操作。 4. **...
Spring Cloud 是一系列框架的集合,用于帮助开发者在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)中快速实现服务治理。...
这些教程将指导你如何设置开发环境,创建第一个Azure Spring Cloud应用,以及如何进行应用配置、部署和扩展。此外,你还可以学习如何利用Azure DevOps实现自动化CI/CD流程,以及如何利用Azure Monitor进行性能分析和...
"于洋spring"是传智播客推出的一系列关于Spring框架的教程,旨在帮助初学者和进阶者深入理解并熟练掌握Spring的核心概念和技术。 一、Spring框架基础 1. **IoC(Inversion of Control)控制反转**:Spring的核心...
Spring Cloud提供了服务发现、配置中心、负载均衡、熔断器等一系列微服务治理工具,如Eureka、Config Server、Zuul、Hystrix等,这些工具与Spring Boot 2的集成使得开发者可以快速搭建出高可用的分布式系统。...
4. **07.MyCat - 环境搭建 - 微服务网关gateway搭建.avi**:这里涉及的是如何配置和使用微服务网关,如Spring Cloud Gateway,作为MyCat系统的入口,实现路由转发和过滤等功能。 5. **08.MyCat - 商品管理 - 需求...
4. **集成Spring Cloud**:Spring Boot 可与Spring Cloud无缝结合,实现微服务架构,涵盖服务发现(Eureka)、配置中心(Config Server)、API Gateway(Zuul或Spring Cloud Gateway)等内容。 5. **安全控制**:...
本"day01笔记.rar"压缩包包含了第一天学习乐优商城项目开发的相关资料,是Spring Cloud乐优商城19天系列教程的组成部分,配合了详细的笔记,帮助学习者逐步掌握该项目的构建过程。 在Spring Cloud框架下,乐优商城...
4. **Spring_2900_Registration_7可能的含义**:这个标识可能指的是一个特定版本或迭代的Spring注册相关教程或案例。"2900"可能是课程编号或问题编号,"7"可能是该系列的第七部分,可能涉及更高级或更具体的注册话题...
7. **微服务**:如果涉及Spring Cloud,教程可能还会介绍如何利用Spring Boot构建微服务架构,包括Eureka(服务发现)、Ribbon(客户端负载均衡)、Zuul(API网关)和Hystrix(断路器)等组件。 8. **持续集成与...
《Springboot高级篇系列整合》是针对Java开发者深入学习Spring Boot框架的重要教程。Spring Boot以其简洁、快速的特性,已经成为现代Java开发中的主流选择。在这个高级篇中,我们将全面探讨Spring Boot的核心概念、...
"microservicecloud:微服务第一季"可能是一个关于微服务系列教程或项目的名称,它可能涵盖了使用Java技术栈实现微服务的方方面面。 在Java领域,实现微服务的最常用框架包括Spring Boot和Spring Cloud。Spring Boot...