Eureka註冊中心高可用集羣配置

Eureka高可用集羣配置java

 

當註冊中心扛不住高併發的時候,這時候 要用集羣來扛;mysql

 

咱們再新建兩個module  microservice-eureka-server-2002  microservice-eureka-server-2003spring

 

第一步:sql

pom.xml 把依賴加下:瀏覽器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< dependencies >
          < dependency >
             < groupId >org.springframework.cloud</ groupId >
             < artifactId >spring-cloud-starter-eureka-server</ artifactId >
         </ dependency >
         <!-- 修改後當即生效,熱部署 -->
         < dependency >
             < groupId >org.springframework</ groupId >
             < artifactId >springloaded</ artifactId >
         </ dependency >
         < dependency >
             < groupId >org.springframework.boot</ groupId >
             < artifactId >spring-boot-devtools</ artifactId >
         </ dependency >
   </ dependencies >

 

第二步:併發

2002  2003的主啓動類EurekaServerApplication_2002,EurekaServerApplication_2003複製修改下;app

 

第三步:spring-boot

前面單機的時候 eureka註冊中心實例名稱 是localhost,如今是集羣,不能三個實例都是localhost,這裏複雜的辦法是搞三個虛擬機,麻煩,這裏有簡單辦法,直接配置本機hosts,來實現本機域名映射;高併發

找到 C:\Windows\System32\drivers\etc  打開hosts,加配置 測試

127.0.0.1  eureka2001.java1234.com

127.0.0.1  eureka2002.java1234.com

127.0.0.1  eureka2003.java1234.com

 

第四步:

修改三個項目的application.yml文件,主要是修改 hostname和defaultZone,

2001修改:

 

server:

  port: 2001

  context-path: /

 

eureka: 

  instance:

    # 單機 hostname: localhost #eureka註冊中心實例名稱

    hostname: eureka2001.java1234.com # 集羣

  client: 

    register-with-eureka: false     #false 因爲該應用爲註冊中心,因此設置爲false,表明不向註冊中心註冊本身。

    fetch-registry: false     #false 因爲註冊中心的職責就是維護服務實例,它並不須要去檢索服務,因此也設置爲false

    service-url: 

      defaultZone: http://eureka2002.java1234.com:2002/eureka/,http://eureka2003.java1234.com:2003/eureka/ # 集羣

      #單機defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #設置與Eureka註冊中心交互的地址,查詢服務和註冊服務用到

       

2002修改:

 

server:

  port: 2002

  context-path: /

 

eureka: 

  instance:

    # 單機 hostname: localhost #eureka註冊中心實例名稱

    hostname: eureka2002.java1234.com # 集羣

  client: 

    register-with-eureka: false     #false 因爲該應用爲註冊中心,因此設置爲false,表明不向註冊中心註冊本身。

    fetch-registry: false     #false 因爲註冊中心的職責就是維護服務實例,它並不須要去檢索服務,因此也設置爲false

    service-url: 

      defaultZone: http://eureka2001.java1234.com:2001/eureka/,http://eureka2003.java1234.com:2003/eureka/ # 集羣

      #單機defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #設置與Eureka註冊中心交互的地址,查詢服務和註冊服務用到

       

 

2003修改:

 

server:

  port: 2003

  context-path: /

 

eureka: 

  instance:

    # 單機 hostname: localhost #eureka註冊中心實例名稱

    hostname: eureka2003.java1234.com # 集羣

  client: 

    register-with-eureka: false     #false 因爲該應用爲註冊中心,因此設置爲false,表明不向註冊中心註冊本身。

    fetch-registry: false     #false 因爲註冊中心的職責就是維護服務實例,它並不須要去檢索服務,因此也設置爲false

    service-url: 

      defaultZone: http://eureka2001.java1234.com:2001/eureka/,http://eureka2002.java1234.com:2002/eureka/ # 集羣

      #單機defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #設置與Eureka註冊中心交互的地址,查詢服務和註冊服務用到

       

 

第五步:修改服務提供者項目的application.yml,主要修改eureka.client.service-url.defaultZone

 

server:

  port: 1001

  context-path: /

 

# 數據源配置

spring: 

  datasource:

    type: com.alibaba.druid.pool.DruidDataSource

    driver-class-name: com.mysql.jdbc.Driver

    url: jdbc:mysql://localhost:3306/db_springcloud2

    username: root

    password: 123456

  jpa:

    hibernate:

      ddl-auto: update

    show-sql: true

 

 

eureka:

  instance:

    hostname: localhost  #eureka客戶端主機實例名稱

    appname: microservice-student  #客戶端服務名

    instance-id: microservice-student:1001 #客戶端實例名稱

    prefer-ip-address: true #顯示IP

  client: 

    service-url: 

      # 單機 defaultZone: http://localhost:2001/eureka   #把服務註冊到eureka註冊中心

      defaultZone: http://eureka2001.java1234.com:2001/eureka/,http://eureka2002.java1234.com:2002/eureka/,http://eureka2003.java1234.com:2003/eureka/ # 集羣

 

      

info: 

   groupId: $project.groupId$

   artifactId: $project.artifactId$

   version: $project.version$

   負責人: 張三

   聯繫電話: 110

 

 

最後咱們測試下:

啓動三個註冊中心,以及服務提供者項目;

 

而後瀏覽器地址欄輸入:http://eureka2001.java1234.com:2001/

QQ鎴浘20180811100908.jpg

 

這裏說明,集羣建立OK;  紅色的那塊 ,後面會講到,是eureka的自我保護。

 

 

假如訪問 http://eureka2002.java1234.com:2002/  http://eureka2003.java1234.com:2003/

都是一個效果;

 

這裏本質是三個服務註冊中心都有咱們服務提供者的信息,等後面講到服務發現和服務調用,咱們經過一些策略(默認輪詢),會去找對應的服務註冊中心;經過集羣,能減輕每一個服務註冊中心的壓力;

相關文章
相關標籤/搜索