前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringCloud教程(Finchley版本)-08:eureka集群搭建

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

作者头像
IT云清
发布2019-03-04 16:07:44
5520
发布2019-03-04 16:07:44
举报
文章被收录于专栏:IT云清IT云清

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

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

1.引入依赖 eureka-server

代码语言:javascript
复制
		<!--eureka-server-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

2.启动类 eureka-server

添加注解

代码语言:javascript
复制
@EnableEurekaServer

3.配置文件 eureka-server

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

代码语言:javascript
复制
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

代码语言:javascript
复制
		<!--eureka-server-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

5.启动类 eureka-server2

添加注解

代码语言:javascript
复制
@EnableEurekaServer

6.配置文件 eureka-server2

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

代码语言:javascript
复制
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,向注册中心注册,写法如下:

代码语言:javascript
复制
eureka:
  client:
    service-url:
      default: http://127.0.0.1:8761/eureka

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

代码语言:javascript
复制
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也可以看到这个服务。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年02月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文,记录在本地搭建2个eureka服务,互相注册为一个集群,生产环境可以部署更多的节点。示例中两个项目分别为eureka-server,port为8761,和eureka-server1,port为8762。这里列出重点步骤。
  • 1.引入依赖 eureka-server
  • 2.启动类 eureka-server
  • 3.配置文件 eureka-server
  • 4.引入依赖 eureka-server2
  • 5.启动类 eureka-server2
  • 6.配置文件 eureka-server2
  • 7.服务注册
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档