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
跟這裏的值是對應的,然後選擇啓動即可測試。