springcloud-eureka高可用集群搭建


一 前言

eureka作為注冊中心,其充當着服務注冊與發現功能,加載負載均衡;若在項目運行中eureka掛了,那么整個服務整體都會暫停,所以為服務運行的安全性,有必要搭建eureka集群;當其中一個eureka節點掛了,我們還有另外的節點可用;本篇文章的核心是如何在idea上運行eureka集群,和項目部署;需注意的jdk版本是1.8,高於jdk1.8打包部署會出問題,需要引入其他依賴;

二 eureka-server配置文件改造

之前的配置文件如下,這是單個eureka-server的配置,並不能滿足於我們實際項目需求,我們要將其改造成高可用的集群節點模式;

server:
  port: 10086

eureka:
  instance:
    hostname: localhost
  client:
    # 作為server,表示禁止向自己注冊
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

改造配置文件如下,之前的文章中我們了解了eureka的peer to peer 交流機制,我們現在就根據這個原理搭建高可用的eureka集群,在配置文件中可以看見知識追尋者配置了3個peer(peer1,peer2,peer3); 它們的端口分別是10081,10082,10083; peer1,分別向 peer2,peer3注冊,peer2則向 peer1,peer3注冊,peer3同理;這樣就構成了eureka簡單的3個節點集群;

spring:
  application:
    name: eureka-server-cluster
---
spring:
  profiles: peer1
server:
  port: 10081
eureka:
  instance:
    hostname: peer1
  client:
    service-url:
      # 向peer2 peer3節點注冊自己
      defaultZone: http://peer2:10082/eureka,http://peer3:10083/eureka

---
spring:
  profiles: peer2
server:
  port: 10082
eureka:
  instance:
    hostname: peer2
  client:
    service-url:
      # 向peer1 pee3節點注冊自己
      defaultZone: http://peer1:10081/eureka,http://peer3:10083/eureka

---
spring:
  profiles: peer3
server:
  port: 10083
eureka:
  instance:
    hostname: peer3
  client:
    service-url:
      # 向peer1 peer2節點注冊自己
      defaultZone: http://peer1:10081/eureka,http://peer2:10082/eureka

三 eureka-client配置文件改造

在之前的基礎上多添加了注冊server節點 peer2,peer3

server:
  port: 8090

spring:
  application:
    name: eureka-client # 應用名稱

eureka:
  client:
    service-url:
      # 服務注冊地址
      defaultZone: http://peer1:10081/eureka/,http://peer2:10082/eureka/,http://peer3:10083/eureka/

四 host文件修改

修改host文件目的是peer對應ip地址,實際項目中 每個peer節點都是一個ip地址;

192.168.0.101 peer1
192.168.0.101 peer2
192.168.0.101 peer3

五 復制啟動配置

復制配置如下:點擊 cpoy configuration 選項;
在這里插入圖片描述

進入編輯狀態,修改 name 為 EurekaServer(1), 激活的配置文件選項 填 peer1;以此類推,我們復制三個實例; 分別是 EurekaServer(1),EurekaServer(2),EurekaServer(3);分別激活配置 peer2,peer2,peer3;
在這里插入圖片描述

六 啟動 eureka-server

分別啟動三個配置實例,圖如下;

在這里插入圖片描述
瀏覽器輸入 http://localhost:10083/ 或者 http://localhost:10082/ 或者 http://localhost:10081/;結果如下,知識追尋者在瀏覽器輸入的 peer3地址,那么 對應的復制的Node 是 peer2,peer1;server有三個;

在這里插入圖片描述

七 啟動 eureka-client

啟動eureka client 圖如下
在這里插入圖片描述
刷新瀏覽器界面,可以看見 client 已經注冊到 server;

在這里插入圖片描述

八 打包部署

進入 eureka-server 工程目錄 執行 打包命令 mvn clean package

在這里插入圖片描述

打開三個命令行分別執行對應的命令,一個cmd一條;

java -jar eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=peer1 
java -jar eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=peer3

pee3 如下
在這里插入圖片描述

瀏覽器頁面如下:

在這里插入圖片描述

九 多 profile運行注意事項

如下 配置文件 不寫在src/main/resources一個 application 中,而是分為 application-peer1.yml, application-peer2.yml, application-peer3.yml ; 在 idea 的虛擬機參數(VM Options)配置 是
-Dspring.profiles.active=peer1 , -Dspring.profiles.active=peer2 ,-Dspring.profiles.active=peer3;部署方式相同;也可以通過 mvn spring-boot:run -Dspring.profiles.active=peer1 的形式運行;

在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM