Spring Cloud Eureka 搭建 & 集群方式

目录
  • 1.Eureka搭建
  • 2.Eureka集群
    • 2.1Eureka集群原理

关于Eureka的详细介绍已经在上篇文章通俗的讲了。

Eureka 本身是使用java 来开发的,Spring Cloud 使用 Spring Boot 技术对 Eureka进行了封装,所以在Spring Cloud中使用Eureka非常方便,只需要引入spring-cloud-starter-netflix-eureka-server依赖即可,然后启动即可。

1.Eureka 搭建

创建一个普通的Spring Boot项目,创建时添加Eureka依赖:

项目创建成功后,在项目启动类上添加注解,标记该项目是一个Eureka Server:

@SpringBootApplication
@EnableEurekaServer //开启Eureka
public class EurekaApplication {
      public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

在application.properties 中配置:

# 给当前服务取名
spring.application.name=eureka
#端口号
server.port=1111
#默认情况下,eureka server 也是一个普通的微服务,所以当它还是一个注册中心的时候,会有两层身份:
# 1.注册中心
# 2.普通服务,即当前服务会自己注册到自己上面来
# false 意为当前项目不要注册到注册中心上
eureka.client.register-with-eureka=false
# 表示是否从 eureka server 上注册信息
eureka.client.fetch-registry=false

然后启动项目,项目启动成功后在浏览器访问:http://localhost:1111 就可以看到Eureka的管理页面了。

如下:

2. Eureka 集群

使用了注册中心后,所有的服务都要通过服务注册中心来进行信息交换。服务注册中心的稳定性就非常重要了,一旦服务注册中心掉线,会影响到整个系统的稳定性。所以在实际开发中,Eureka一般都是以集群的形式出现的。

Eureka集群,实际上就是启动多个Eureka实例, 多个Eureka实例之间互相注册,互相同步数据,共同组成一个Eureka集群。

搭建Eureka集群,首先要修改电脑的hosts文件(c:\windows\System32\drivers\etc\hosts),Linux上面搭建请点击这篇文章查看。

我这里为了方便操作,直接在第一步搭建 eureka 的 demo基础上,在resources目录下,再添加两个配置文件,分别如下:

application-a.properties配置如下:

# 给当前服务取名
spring.application.name=eureka
#端口号
server.port=1111
eureka.instance.hostname=eurekaA
#默认情况下,eureka server 也是一个普通的微服务,所以当它还是一个注册中心的时候,会有两层身份:
# 1.注册中心
# 2.普通服务,即当前服务会自己注册到自己上面来
# false 意为当前项目不要注册到注册中心上
eureka.client.register-with-eureka=true
# 表示是否从 eureka server 上注册信息
eureka.client.fetch-registry=true
# A服务注册到B服务上( 配置多个的话后面用逗号隔开)
eureka.client.service-url.defaultZone=http://eurekaB:1112/eureka

application-b.properties配置如下:

# 给当前服务取名
spring.application.name=eureka
#端口号
server.port=1112
eureka.instance.hostname=eurekaB
#默认情况下,eureka server 也是一个普通的微服务,所以当它还是一个注册中心的时候,会有两层身份:
# 1.注册中心
# 2.普通服务,即当前服务会自己注册到自己上面来
# false 意为当前项目不要注册到注册中心上
eureka.client.register-with-eureka=true
# 表示是否从 eureka server 上注册信息
eureka.client.fetch-registry=true

eureka.client.service-url.defaultZone=http://eurekaA:1111/eureka

配置完成后对当前项目打包,

打完包在IDEA命令行启动两个实例。两个启动命令分别如下:

java -jar eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=a
java -jar eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=b

注意:启动第一个a之后你会发现控制台报错,是因为它一直发送心跳,而同时b还没有上线,等b也启动后错误即可消失。如果还报错,那就是代码的问题了。

启动成功后,就可以看到两个服务之间互相注册,共同组成一个集群。

如下图:

2.1 Eureka 集群原理

官方的Eureka集群架构图:

在这个集群架构中,Eureka Server 之间过 Replicate 进行数据同步,不同的 EurekaServer 之间不区分主从节点,所有节点都是平等的。

节点之间,通过置顶 serviceUrl 来相注册,形成一个集群,进而提高节点的可用性。

在 Eureka Server 集群中,如果有某一个节点宕机,Eureka Client 会自动切到新的 Eureka Server 上。每一个Eureka Server,都会互相同步数据。

Eureka Server 的连接方式,可以是单线的,就是A——>b——>C,此时,A的数据也会和C之间相同步。

但是一般不建议这种写法,在我们配置 serviceUrl 时,可以指定多个注册地址,即A可以即注册到B上,也可以同时注册到C上。

Eureka分区:

1.region:地理上的不同区域

2.zone:具体的机房

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • spring cloud之eureka高可用集群和服务分区解析

    目录 准备 搭建 验证 解释 准备 1.首先,在C:\WINDOWS\System32\drivers\etc\hosts文件里面添加一下映射,如果不添加也没关系,只是如果是单机环境,在eureka首页中的replicas那一项看到的其它注册中心都是localhost,我这里为了方便理解就添加了映射. 2.为了方便理解,我这里是单个application用一个module,没有采用通过多个profile开启多个application的做法,而且这样做一会儿验证起来也比较清晰. 3.必要的一些概念

  • 解决springcloud-eureka注册时的ip问题

    目录 springcloud-eureka注册,ip问题 手动指定instance-id 服务调用时外网ip使用 Eureka注册服务后,ip展示不正确,调用失败 问题描述 在eureka上展示出来的效果如下 不废话,核心配置 另外,如果这一行还不够,再加几行 springcloud-eureka注册,ip问题 在微服务注册到eureka时,在开启ip显示时,有时候会出现localhost的情况 手动指定instance-id 在配置文件中 eureka.instance.prefer-ip-a

  • SpringCloud实现Eureka服务注册与发现

    GitHub地址:https://github.com/yudiandemingzi/spring-cloud-study 一.Eureka概述 1.Eureka特点 (1) Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移. (2) Eureka 主管服务注册与发现,在微服务中,以后了这两者,只需要使用服务的标识符(==就是那个在每个服务的yml文件中取得服务名称==), 就可以访问到服务,不需要修改服务调用的配置文件. (3) Eureka遵循AP原则(

  • Spring Cloud Eureka(全面解析) 大白话

    目录 Eureka大白话解析 1.Eureka介绍 2.Eureka的工作细节 2.1EurekaServer 2.2EurekaClient Eureka分区策略 第一步:背景和概念介绍 第二步:相关参数介绍 Eureka大白话解析 笔记补录: 1.Eureka 介绍 Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责实现微服务架构中的服务治理功能. 服务治理是微服务架构中必不可少

  • Spring Cloud Eureka: 指定Zone方式

    目录 Eureka如何指定Zone Eureka中的region和Zone 概念 分区服务架构图 Eureka中Regin和Zone的相关配置 服务注册相关 服务调用 Eureka如何指定Zone 有坑. 先说结论:如果想给当前服务指定属于哪个zone, 使用 eureka.instance.metadata-map.zone=myzone 属性是无效的,而应该使用: eureka.client.availabilityZones.beijing=myzone # beijing是region

  • SpringCloud服务注册和发现组件Eureka

    本篇文章,我们来讲解springcloud的服务注册和发现组件,上一章节我们讲解了如何搭建springcloud的多模块项目,已经新建了springcloud-eureka-server,springcloud-eureka-client两个模块,本章节就在这基础上直接使用. 想要了解的请参考:一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目 一.Eureka简介: 1.1 什么是eureka Eureka是一个基于REST的服务,主要用于AWS云中

  • Spring Cloud Eureka 搭建 & 集群方式

    目录 1.Eureka搭建 2.Eureka集群 2.1Eureka集群原理 关于Eureka的详细介绍已经在上篇文章通俗的讲了. Eureka 本身是使用java 来开发的,Spring Cloud 使用 Spring Boot 技术对 Eureka进行了封装,所以在Spring Cloud中使用Eureka非常方便,只需要引入spring-cloud-starter-netflix-eureka-server依赖即可,然后启动即可. 1.Eureka 搭建 创建一个普通的Spring Boo

  • Spring cloud Eureka注册中心搭建的方法

    前提  系统安装jdk1.8及以上,配置好maven的ide(这里用idea进行演示,maven版本3.5,配置阿里云源) 项目搭建 新建一个maven项目,创建最简单的那种就好,项目名这里为EurekaServerDemo,包名什么的随意,项目打包方式为jar, 也可以使用spring官方的生成器,官方的生成器会创建基础的springboot项目结构.这里为了演示,都可以 修改pom文件,参考如下,版本推荐和本文相同,springboot和cloud版本的坑很多 <?xml version=&qu

  • Spring Cloud Eureka基础应用及原理

    目录 Eureka简介 搭建Eureka服务注册中心 搭建Eureka服务提供者 搭建Eureka服务调用者 Eureka服务注册和发现 Eureka简介 Eureka这个词来源于古希腊语,意为“我找到了!我发现了!”.据传,阿基米德在洗澡时发现浮力原理,高兴得来不及穿上衣服,跑到街上大喊:“Eureka! ”.在Netflix中,Eureka是一个RESTful风格的服务注册与发现的基础服务组件.Eureka由两部分组成,一个是Eureka Server,提供服务注册和发现功能,即我们上面所说

  • Spring Cloud Eureka服务注册中心入门流程分析

    目录 项目搭建 客户端注册 聚合层处理 Eureka架构 集群搭建 多区域配置 自我保护开关 心跳机制 Eureka实例信息存储 项目地址 在学习Ribbon使用的时候,我们是直接在配置文件中写死服务地址的,是不是特别的不方便?我们是不是需要一个统一的地方来维护这些服务,以及这些配置发生变化后,我们不需要重启服务. 所以这个时候需要引出一个新组件——eureka. 它主要可以帮助我们实现如下功能: 地址的统一维护服务提供者的动态上下线通知 服务提供者可以将服务注册到eureka上,eureka通

  • Spring Cloud Eureka服务治理的实现

    什么是Spring Cloud Eureka Spring Cloud Eureka 是 Spring Cloud 中的一个组件,它是基于 Netflix Eureka 做了二次封装,主要是负责完成微服务框架中服务治理的功能.Spring Cloud通过为 Eureka 增加了 Spring Boot 风格的自动化配置,我们只需要通过简单的引用依赖和注解就能让 Spring Boot 够将的微服务应用轻松的与 Eureka 服务治理体系进行整合. 服务治理 服务治理是微服务框架中最为核心和基础的

  • SpringCloud之服务注册与发现Spring Cloud Eureka实例代码

    一.Spring Cloud简介 Spring Cloud是一个基千SpringBoot实现的微服务架构开发 工具.它为微服务架构中涉及的 配置管理.服务治理. 断路器. 智能路由.微代理. 控制总线. 全局锁. 决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品,还可能会新增),如下所述. Spring Cloud Config: 配置管理工具.Spring Cloud Netflix: 核心组件

  • Spring Cloud Eureka 注册与发现操作步骤详解

    在搭建Spring Cloud Eureka环境前先要了解整个架构的组成,常用的基础模式如下图: 服务提供者:将springboot服务编写好以后,通过配置注册中心地址方式注册,提供给消费者使用. 注册中心:服务的中间桥梁,服务提供者将服务注册.服务消费者可以通过注册信息调用需要使用的服务. 服务消费者:通过规定的调用方式,读取注册中心的注册信息,调用相应的服务. 根据后续的服务复杂度进化以后,可以看到服务提供者也可以是服务消费者,服务消费者也可以是服务提供者.根据不同的业务情况是可以互相调用的

  • 用apache和tomcat搭建集群(负载均衡)

    一.集群和负载均衡的概念 (一)集群的概念 集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库.Web服务和文件服务等)的单一客户视图,同时提供接近容错机的故障恢复能力.集群系统一般通过两台或多台节点服务器系统通过相应的硬件及软件互连,每个群集节点都是运行其自己进程的独立服务器.这些进程可以彼此通信,对网络客户机来说就像是形成了一个单一系统,协同起来向用户提供应用程序.系统资源和数据.除了作为单一系统提供服务,集群系统还

随机推荐