专栏首页IT云清SpringCloud教程(Finchley版本)-08:eureka集群搭建

SpringCloud教程(Finchley版本)-08:eureka集群搭建

在eureka的服务治理设计中,所有的节点既是服务提供方,也是服务消费方,注册中心也不例外。eureka server的高可用集群,其实就是将自己作为服务向其他注册中心注册自己,这样几个节点的eureka就可以互相注册,实现服务清单的互相同步,达到高可用的效果。

本文,记录在本地搭建2个eureka服务,互相注册为一个集群,生产环境可以部署更多的节点。示例中两个项目分别为eureka-server,port为8761,和eureka-server1,port为8762。这里列出重点步骤。

1.引入依赖 eureka-server

		<!--eureka-server-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

2.启动类 eureka-server

添加注解

@EnableEurekaServer

3.配置文件 eureka-server

eureka-server注册到 eureka-server2上,并且,register-with-eureka: true, fetch-registry: true,两个参数,需要设置为true,让他们可以互相注册,同步服务清单;由于这里我使用的ip来做地址,而不是服务名,所以需要打开prefer-ip-address: true。

server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: peer1
    prefer-ip-address: true
#    允许使用ip地址来定义注册中心的地址,默认是false
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone:  http://127.0.0.1:8762/eureka/
  server:
    enable-self-preservation: false
# 默认情况下,eureka间隔60s将服务清单中没有续约的服务剔除(默认90s内没有续约),本地测试,关闭保护机制,直接让它实时剔除

4.引入依赖 eureka-server2

		<!--eureka-server-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

5.启动类 eureka-server2

添加注解

@EnableEurekaServer

6.配置文件 eureka-server2

eureka-server2注册到 eureka-server上,并且,register-with-eureka: true, fetch-registry: true,两个参数,需要设置为true,让他们可以互相注册,同步服务清单;由于这里我使用的ip来做地址,而不是服务名,所以需要打开prefer-ip-address: true。

server:
  port: 8762
spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: peer2
    prefer-ip-address: true
#    允许使用ip地址来定义注册中心的地址,默认是false
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone:  http://127.0.0.1:8761/eureka/
  server:
    enable-self-preservation: false
# 默认情况下,eureka间隔60s将服务清单中没有续约的服务剔除(默认90s内没有续约),本地测试,关闭保护机制,直接让它实时剔除

7.服务注册

在其他服务向eureka集群注册时,可以只注册到一个节点,也可以向多节点注册。因为集群中节点会自动同步服务列表,所以上述2种方式均可。 这里给出一个示例,比如company-server,向注册中心注册,写法如下:

eureka:
  client:
    service-url:
      default: http://127.0.0.1:8761/eureka

可以发现,注册到eureka集群,和注册到单体eureka上,对于注册者而言,是相同的,无需额外处理。当然,也可以如下,向多个节点注册:

eureka:
  client:
    service-url:
      default: http://127.0.0.1:8761/eureka,http://127.0.0.1:8762/eureka

这里采用第一种写法,注册完后,启动eureka集群(由于启动有先后,会报错,因为互相注册,对方可能还没起来,等都起来了,就好了),然后再启动company-server,访问2个注册中心,结果如下:

可以看到,尽管我们只向eureka-server注册了,但是eureka-server2也可以看到这个服务。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringCloud教程(Finchley版本)-01:服务注册与发现(Eureka)

    新建一个SpringBoot项目eureka_server,作为注册中心,后续的其他项目,都注册在这个注册中心上面。

    IT云清
  • SpringCloud教程-01:服务注册与发现(Eureka)

    摘要:本文讲述如何快速启动一个项目作为eureka服务注册中心,我们先简述相关的理论知识,然后介绍如何启动一个注册中心。

    IT云清
  • Bean method 'eurekaHealthCheckHandler' not loaded because @ConditionalOnProperty (eureka.client.

    eureka配置一下healthcheck即可。注意,idea不能提示这个属性,得手动敲。

    IT云清
  • Spring Cloud Eureka:服务注册与发现

    在微服务架构中往往会有一个注册中心,每个微服务都会向注册中心去注册自己的地址及端口信息,注册中心维护着服务名称与服务实例的对应关系。每个微服务都会定时从注册中心...

    macrozheng
  • Spring Eureka 初探及集群搭建

    Eureka 主要是用于进行服务的注册和发现,今天就来学习一下如何使用 Eureka

    Java技术大杂烩
  • eureka配置账号密码才能访问

    如果配置好了eureka server,默认情况下我们就直接直接访问到eureka的界面了。如果不想让所有人都能访问到eureka的界面,可以加上权限认证,输入...

    天涯泪小武
  • 原创 | Eureka搭建分布式SpringCloud项目

    Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线...

    润森
  • Istio 运维实战系列(3):让人头大的『无头服务』-下

    作者赵化冰,腾讯云高级工程师,Istio contributor,ServiceMesher管理委员,热衷于开源、网络和云计算。目前主要从事服务网格的开源和研...

    腾讯云原生
  • Spring Cloud系列勘误

    Spring Cloud系列已经写完了,这是一系列的学习笔记,由于写作匆忙,难免会有出错的文字或者代码,实在抱歉。 目前作者已经发现了几处有错误的地方,为了小伙...

    江南一点雨
  • 使用 docker-compose 部署 Euraka

    我 docker-compose 将我 SrpingBoot 微服务部署在 docker 容器中,在部署 Euraka 时 总是失败,无法连接到 Euraka服...

    zhangyunfeiVir

扫码关注云+社区

领取腾讯云代金券