三(2)、springcloud之Eureka集羣配置

1)原理說明**

  • 服務啓動後向Eureka註冊,Eureka Server會將註冊信息向其他Eureka Server進行同步,當服務消費者要調用服務提供者,則向服務註冊中心獲取服務提供者地址,然後會將服務提供者地址緩存在本地,下次再調用時,則直接從本地緩存中取,完成一次調用。
  • 當服務註冊中心Eureka Server檢測到服務提供者因爲宕機、網絡原因不可用時,則在服務註冊中心將服務置爲DOWN狀態,並把當前服務提供者狀態向訂閱者發佈,訂閱過的服務消費者更新本地緩存。
  • 服務提供者在啓動後,週期性(默認30秒)向Eureka Server發送心跳,以證明當前服務是可用狀態。Eureka Server在一定的時間(默認90秒)未收到客戶端的心跳,則認爲服務宕機,註銷該實例。

在這裏插入圖片描述

  • 處於不同節點的eureka通過Replicate進行數據同步
  • Application Service爲服務提供者
  • Application Client爲服務消費者
  • Make Remote Call完成一次服務調用

2)新建其它Eureka註冊中心

新建microservicecloud-eureka-7002/microservicecloud-eureka-7003,步驟與之前一樣,將microservicecloud-eureka-7001Eureka註冊中心的內容複製到7002,7002,參考:上一篇博客

注意這裏:要修改主啓動類,

2)修改映射配置

修改C:\Windows\System32\drivers\etc路徑下的hosts文件

在這裏插入圖片描述
如果是單節點的註冊中心,是無法保證系統穩定性的,當然現在項目部署架構不可能是單節點的。集羣節點的部署思路:通過運行多個實例並請求他們相互註冊,來完成註冊中心的高可用性

3)3臺eureka服務器的yml配置

7001:

server: 
  port: 7001
 
eureka: 
  instance:
    hostname: eureka7001.com #eureka服務端的實例名稱
  client: 
    register-with-eureka: false     #false表示不向註冊中心註冊自己。
    fetch-registry: false     #false表示自己端就是註冊中心,我的職責就是維護服務實例,並不需要去檢索服務
    service-url: 
      #單機 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #設置與Eureka Server交互的地址查詢服務和註冊服務都需要依賴這個地址(單機)。
      defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
      

7002:

server: 
  port: 7002
 
eureka: 
  instance:
    hostname: eureka7002.com #eureka服務端的實例名稱
  client: 
    register-with-eureka: false     #false表示不向註冊中心註冊自己。
    fetch-registry: false     #false表示自己端就是註冊中心,我的職責就是維護服務實例,並不需要去檢索服務
    service-url: 
      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #設置與Eureka Server交互的地址查詢服務和註冊服務都需要依賴這個地址。
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/

7003:

server: 
  port: 7003
 
eureka: 
  instance:
    hostname: eureka7003.com #eureka服務端的實例名稱
  client: 
    register-with-eureka: false     #false表示不向註冊中心註冊自己。
    fetch-registry: false     #false表示自己端就是註冊中心,我的職責就是維護服務實例,並不需要去檢索服務
    service-url: 
      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/       #設置與Eureka Server交互的地址查詢服務和註冊服務都需要依賴這個地址。
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/

4)microservicecloud-provider-dept-8001微服務provider發佈到上面3臺eureka集羣配置中

server:
  port: 8001
  
mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml  # mybatis配置文件所在路徑
  type-aliases-package: com.jiatp.springcloud.entity  # 掃描此包下的entity ->所有entity別名類所在包
  mapper-locations:
  - classpath:mybatis/mapper/**/*.xml                 # mapper映射文件
 
spring:
  application:
    name: microservicecloud-dept                      # 很重要,對外暴露的微服務名字
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource      # 數據源類型
    driver-class-name: org.gjt.mm.mysql.Driver        # 數據庫驅動包
    url: jdbc:mysql://localhost:3306/cloudDB01?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT
    username: root
    password: 123456
    dbcp2:
      min-idle: 5                                     # 數據庫連接池的最小維持連接數
      initial-size: 5                                 # 初始化連接數
      max-idle: 5                                     # 最大連接數
      max-wait-millis: 200                            # 等待連接獲取的最大超時時間
eureka:
  client:                                             # 客戶端註冊進eureka服務列表內
    serviceUrl:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ 
  instance:
    instance-id: microservicecloud-dept8001           # 自定義服務名稱信息
    prefer-ip-address: true                           # 訪問路徑可以顯示IP地址 

info:
  app.name: jiatp-microservicecloud
  company.name: www.jiatp.club
  build.artifactId: $project.artifactId$
  build.version: $project.version$      

測試:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章