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

1)原理說明**mysql

  • 服務啓動後向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註冊中心web

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

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

2)修改映射配置數據庫

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

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

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

7001:mybatis

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$

測試:

在這裏插入圖片描述

相關文章
相關標籤/搜索