Spring Cloud - 实现“服务中心”集群(Eureka)

本文详细介绍了如何在单机环境下模拟搭建Spring Cloud的Eureka服务中心集群,包括配置虚拟地址、多环境配置、打包部署及实现服务提供者和消费者。通过在hosts文件设置虚拟主机,创建不同环境的配置文件,然后启动Eureka服务实例,实现了服务中心的集群。同时,文章讲解了服务提供者如何注册到Eureka,并通过Feign实现服务消费者的接口调用。
摘要由CSDN通过智能技术生成

    因为大部分人只有一台电脑,所以本节演示如何在一台电脑上实现“服务中心”集群。这里以模拟3台服务器来实现集群,具体如下表。

访问URI IP(本机) 几点名称 端口号
http://node1:9091 127.0.0.1 node1 9091
http://node2:9092 127.0.0.1 node2 9092
http://node3:9093 127.0.0.1 node3 9093
1. 配置虚拟地址

    在C:\Windows\System32\drivers\etc 下的hosts文件中添加一下代码并保存(注意提供修改权限):

#节点 node1
127.0.0.1 node1
#节点 node2
127.0.0.1 node2
#节点 node3
127.0.0.1 node3

    DNS的作用是将域名解析到对应的IP地址。
    在做好上面配置后,访问http://node1、http://node2、http://node3 都是访问IP地址为127.0.0.1 的主机(即本机)。需要在域名地址后加上端口号,这样才能出现“服务中心”的管理界面。

2.多环境配置

    下面通过创建多个配置文件来模拟多个“服务中心”。

(1) 创建节点 node1 的配置文件 application-node1.properties,并将“serviceUrl”指向节点 node2 和node3。见以下代码:

#应用名称
spring.application.name=Eureka Server Demo
#服务的端口号
server.port=9091
#节点的名称
eureka.instance.hostname=node1
#是否注册到eureka server,默认为true
eureka.client.register-with-eureka=false
#是否从eureka server 获取注册信息,默认为 true
eureka.client.fetch-registry=false
#设置与eureka server交互的地址。查询服和注册服务都需要依赖这个地址。多个地址可使用","分隔${server.port}代表配置的是9090的
#端口号
eureka.client.serviceUrl.defaultZone=http://node2:9092/eureka/,http://node3:9093/eureka/

(2) 创建节点 node2 的配置文件 application-node2.properties,并将“serviceUrl”指向节点 node1 和node3。见以下代码:

#应用名称
spring.application.name=Eureka Server Demo
#服务的端口号
server.port=9092
#节点的名称
eureka.instance.hostname=node2
#是否注册到eureka server,默认为true
eureka.client.register-with-eureka=false
#是否从eureka server 获取注册信息,默认为 true
eureka.client.fetch-registry=false
#设置与eureka server交互的地址。查询服和注册服务都需要依赖这个地址。多个地址可使用","分隔${server.port}代表配置的是9090的
#端口号
eureka.client.serviceUrl.defaultZone=http://node1:9091/eureka/,http://node3:9093/eureka/

(2) 创建节点 node3 的配置文件 application-node3.properties,并将“serviceUrl”指向节点 node1 和node2。见以下代码:

#应用名称
spring.application.name=Eureka Server Demo
#服务的端口号
server.port=9093
#节点的名称
eureka.instance.hostname=node3
#是否注册到eureka server,默认为true
eureka.client.register-with-eureka=false
#是否从eureka server 获取注册信息,默认为 true
eureka.client.fetch-registry=false
#设置与eureka server交互的地址。查询服和注册服务都需要依赖这个地址。多个地址可使用","分隔${server.port}代表配置的是9090的
#端口号
eureka.client.serviceUrl.defaultZone=http://node1:9091/eureka/,http://node2:9092/eureka/
3 打包和部署“服务中心”

    在开发完成后,可以直接使用IDEA将应用打包成JAR(WAR)包,以便在多服务器多配置环境中运行。

3.1 部署“服务中心”集群。

    接下来进入打包后的JRA包目录,分别以node1、node2、node3的配置参数启动“服务中心” Eureka。具体如下。

  1. 进入JRA目录,在地址栏输入"cmd"命令,按3次Enter键,即可打开3个DOS命令窗口。
  2. 在3个DOS命令窗口中分别输入以下命令以启动服务中心。
    命令1:
    java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=node1
    命令2:
    java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=node2
    命令3:
    java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=node3

待各个节点依次启动后在浏览器中输入“http://node1:9091”,会显示如下图的“服务中心”管理页面。
在这里插入图片描述
    由图可知,节点node1 的“DS Replicas” 中已经有了node2、node3、的配置信息,并且在“available-replicas” 中有node1、node2、node3的状态信息。如果停止node2,则会发现node2被移动到“unavailable-replicas” 一栏中,表示node2不可用。

4 用Eureka实现“服务提供者”
4.1 实现“服务提供者”的客户端
4.1.1 添加依赖
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值