Eureka作为注册中心,相信现在知道springcloud的小伙伴,自己都私下玩过这东东,但主要还是玩的单机版的。
今天自己玩了下集群版,感觉坑真的很多,不仅仅是配置问题,更甚者有的问题百度的答案五花八门,当然,我这里也会变成这五花八门中的一门,哈哈哈。。。。。。
先说思路:
假设现在启动三台服务器(这里由于是本地,都用127.0.0.1 有服务器的小伙伴当然可以直接换成不同的ip,这没影响),每一台跑一个Eureka项目。
例如:A、B、C三个程序,要实现集群,那么就要互相注册,A想B和C注册,同理B向A和C注册,C向A和B注册,这里如要一个JAR包完全够用:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
这里的配置,最主要的还是配置文件,
spring:
application:
name: eureka-server
---
server:
port: 7001
spring:
#隔离,配置这东西用来选择启动的那个配置,当然不配置用Dserver.port也是可以的
profiles: test
eureka:
server:
eviction-interval-timer-in-ms: 5000
instance:
hostname: eureka01
#prefer-ip-address: false
client:
#当做服务注册自己
register-with-eureka: true
#拉取注册信息
fetch-registry: true
service-url:
defaultZone: http://eureka01:7001/eureka/,http://eureka02:7003/eureka/,http://eureka03:7004/eureka/
---
server:
port: 7003
spring:
profiles: dev
eureka:
server:
eviction-interval-timer-in-ms: 5000
instance:
hostname: eureka02
#prefer-ip-address: false
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://eureka01:7001/eureka/,http://eureka02:7003/eureka/,http://eureka03:7004/eureka/
---
server:
port: 7004
spring:
profiles: prod
eureka:
server:
eviction-interval-timer-in-ms: 5000
instance:
hostname: eureka03
#prefer-ip-address: false
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://eureka01:7001/eureka/,http://eureka02:7003/eureka/,http://eureka03:7004/eureka/
---
详细解释一下:
1.
spring:
application:
name: eureka-server
设置服务名的,这里集群就用一个名字就行,这里叫eureka-server。
就是这里的名字,如果配置了多个,那么现实的就是多条。
2.
eureka:
server:
eviction-interval-timer-in-ms: 5000
instance:
hostname: eureka01
#prefer-ip-address: false
这里的hostname,优先级低于application.name,但是这里的它还不能省略,注册的时候需要用到hostname;
3.
client:
#当做服务注册自己
register-with-eureka: true
#拉取注册信息
fetch-registry: true
这里要注意,单机的时候,这里都是false,集群要开启,要不然就没法互相注册拉取注册信息了。
4.配置映射:
C:\Windows\System32\drivers\etc
路径下找到host文件,添加:
127.0.0.1 eureka01
127.0.0.1 eureka02
127.0.0.1 eureka03
这样就完成整个注册过程了,注意这里的名字要跟hostname的名字一致。
这样就注册成功了。集群注册中心完成。
补:这里与搭建无关,只是讲解下一个文件中配置三个端口,需要使用“---”进行隔开,启动时,以idea为例:
点开之后如下图:
点击复制,然后修改Active Profiles,这里的值就是配置文件中
spring:
#隔离,配置这东西用来选择启动的那个配置,当然不配置用Dserver.port也是可以的
profiles: test
跟这里的值是对应的,然后选择启动即可测试。