Eclipse(STS) 初次搭建Spring Cloud項目之Eureka高可用配置(二)

1、 什麼是高可用

高可用HA(High Availability)是分佈式系統架構設計中必須考慮的因素之一,它一般是指,經過設計減小系統不能提供服務的時間。spring

2、 Eureka如何實現高可用

完成第一個註冊中心項目,環境無需改變,本文高可用是模擬操做,因此咱們的操做是啓動兩個註冊中心項目,經過修改配置文件達到一樣的效果。bash

首先修改hosts文件,在文件下面添加如下兩行代碼

C:\Windows\System32\drivers\etc路徑下,hosts文件服務器

修改Server端代碼

打開cloud-demo-eureka-server項目,在src/main/resource下建立application-server-1.yml和application-server-2.yml架構

注意yml文件當中hosthome節點的修改

application-server-1.yml內容以下

server:
 port: 8761 # 你的端口
spring:
  security:
    user:
      name: admin
      password: admin
  application:
    name: service-registry
eureka:
 instance:
   hostname: server1 # 你的地址
 client:
   registerWithEureka: true
   fetchRegistry: true # fetchRegistry表示是否從eureka服務器獲取註冊信息
   serviceUrl:
     #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
     defaultZone: http://admin:admin@server2:8762/eureka/
複製代碼

application-server-2.yml內容以下

server:
 port: 8762 # 你的端口
spring:
  security:
    user:
      name: admin
      password: admin
  application:
    name: service-registry
eureka:
 instance:
   hostname: server2 # 你的地址
 client:
   registerWithEureka: true
   fetchRegistry: true # fetchRegistry表示是否從eureka服務器獲取註冊信息
   serviceUrl:
      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      defaultZone: http://admin:admin@server1:8761/eureka/
複製代碼

注意觀察:defaultZone:http://admin:admin@server1:8761/eureka/ 這裏的配置爲兩個註冊中心server端互相註冊。registerWithEureka和fetchRegistry兩個屬性要設置爲true

原application.yml改成以下內容:(啓動兩次修改此配置文件便可,server-1,和server-2分別啓動一次)

spring:
  profiles:
    active:
    - server-1
複製代碼

修改完成啓動項目

啓動第一個項目確定會報錯,由於互相註冊致使沒法找到另外一個服務,不用驚慌,把兩個服務所有啓動。訪問http://localhost:8761或http://localhost:8762 ,DS Replicas顯示爲另外一個服務

這裏能夠發現SERVICE-REGISTRY這個服務已經啓動了兩個了。下面我修改客戶端cloud-demo-eureka-client代碼

修改客戶端代碼

打開cloud-demo-eureka-client項目,打開src/main/resource/application.yml,修改內容,將兩個註冊中心地址都填寫在defaultZone節點中,並啓動服務,以下圖顯示內容,則啓動成功。app

spring:
  application:
    name: service-eureka-client #服務名稱
server:
  port: 8800 #端口
eureka:
  client:
    service-url:
      defaultZone: http://admin:admin@server1:8761/eureka/,http://admin:admin@server2:8762/eureka/
複製代碼

下面咱們關閉server1的eureka-server,以後訪問http://localhost:8762分佈式

下面咱們再次開啓server1的eureka-server服務,訪問http://localhost:8762fetch

能夠發現咱們的模擬高可用已經實現了

相關文章
相關標籤/搜索