SpringCloud组件:Eureka集群部署
使用idea开发工具创建两个SpringBoot项目,添加Eureka Server依赖即可,pom文件与前文的eureka-server相同。
启用Eureka Server
在入口类XxxApplication上添加@EnableEurekaServer注解来启用Eureka Server服务以及实例化一些依赖,修改如下所示:
@SpringBootApplication
@EnableEurekaServer
public class Mastereureka1Application{
//....
}
环境配置
首先删除两个项目中的application.properties
我们在项目1的src/main/resources目录下创建名为application.yml的配置文件,在该配置文件内添加如下配置:
# 服务名称
spring:
application:
name: master1-eureka-server
# 服务端口号
server:
port: 8880
#Eureka 相关配置
eureka:
client:
service-url:
defaultZone: http://node2:8890/eureka/
# 是否从其他的服务中心同步服务列表
fetch-registry: true
# 是否把自己作为服务注册到其他服务注册中心
register-with-eureka: true
instance:
hostname: node1
instance-id: ${eureka.instance.hostname}:${server.port}:@project.version@
server:
peer-node-connect-timeout-ms: 1000
继续在项目2的src/main/resources下创建一个名为application.yml的配置文件,内容如下所示:
# 服务名称
spring:
application:
name: master2-eureka-server
# 服务端口号
server:
port: 8890
#Eureka 相关配置
eureka:
client:
service-url:
defaultZone: http://node1:8880/eureka/
# 是否从其他的服务中心同步服务列表
fetch-registry: true
# 是否把自己作为服务注册到其他服务注册中心
register-with-eureka: true
instance:
#配置通过主机名方式注册
hostname: node2
#配置实例编号
instance-id: ${eureka.instance.hostname}:${server.port}:@project.version@
#集群节点超时时间
server:
peer-node-connect-timeout-ms: 1000
主机名设置
- Mac或者Linux配置方式
如果你使用的是osx系统。可以找到/etc/hosts文件并添加如下内容:
127.0.0.1 node1
127.0.0.1 node2
一般情况下配置完成后就会生效,如果配置不生效,重启即可
- Windows配置方式
可以修改C:\Windows\System32\drivers\etc\hosts文件,添加内容与Mac方式一致。
Eureka Sever相互注册
- 项目1 application.yml
eureka.client.service-url.defaultZone这个配置参数的值,配置的是http://node2:8890/eureka/,那这里的node2是什么呢?其实一看应该可以明白,这是们在hosts文件内配置的hostname,而端口号我们配置的则是8890,根据hostname以及port我们可以看出,环境node1注册到了node2上。 - 项目2 application-node2.yml
在node2环境内配置eureka.client.service-url.defaultZone是指向的http://node1:8880/eureka/,同样node2注册到了node1上。
通过这种相互注册的方式牢靠的把两个服务注册中心绑定在了一块。
运行测试
运行两个项目
-
访问http://node1:8880查看node1环境的Eureka管理中心
-
访问http://node2:8890查看node2环境的Eureka管理中心