Spring Cloud -- Eureka集群配置
前言
上一篇文章我們討論了Eureka的服務註冊與發現,這篇我們來針對Eureka的集群配置做討論~建議您可以先去參考前兩篇 (Spring Cloud -- 微服務初探及實作) 及 (Spring Cloud -- Eureka服務治理) 再來看會比較清楚喔,本篇會接續前兩篇的內容來做分享。
到目前為止,我們就只有一個Eureka 7001的,所有的服務都註冊在此,若是7001掛點,那所有的服務也就通通一起掛點了,這無論對Service端還是Client端都是非常不利的,因此,接下來為各位分享關於Eureka的集群配置 (接下來會建越來越多微服務,如果memory不夠大的電腦可能會跑不動喔~建議可以將memory換大一點)。
Eureka的集群配置
1. 首先,請按照建立Eureka註冊中心(Spring Cloud -- Eureka服務治理)第1~14步,再建立兩個Eureka註冊中心微服務 (7002、7003),完成圖如下
2. 接著到自己local的電腦中搜尋 C:\Windows\System32\drivers\etc,找到一個hosts的檔案打開
3. 將如下三行配置加至hosts中
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
127.0.0.1 eureka7003.com
4. 接下來需修正7001、7002、7003的application.yml配置,因為現在有三台eureka,故不能再以localhost來稱呼,需改成其他名字,以7001為例,剩下兩個比照辦理,將eureka.instance.hostname 改為eureka7001.com、eureka.client.defaultZone改為另外2台eureka service,使三支eureka能夠互相切換使用
server:
port: 7001
eureka:
# server:
# enable-self-preservation: false #禁用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/
5. 再來,因為原本的Service端只註冊7001一台eureka,現在有三台了,所以也都要註冊進去,8001的appr的application.yml修正如下
server:
port: 8001
mybatis:
config-location: classpath:mybatis/mybatis.cfg.xml #mybatis配置文件所在路徑
type-aliases-package: com.jacob.springcloud.entities #所有Entity別名類所在package
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 #mysql驅動包
url: jdbc:mysql://localhost:3306/cloudDB01?useSSL=false #資料庫名稱
username: Jacob
password: 1234
dbcp2:
min-idle: 5 #資料庫連接池的最小維持連接數
initial-size: 5 #初始化連接數
max-idle: 5 #最大連接數
max-wait-millis: 200 #等待連接獲取最大超時時間
eureka:
client:
register-with-eureka: true #註冊到Eureka註冊中心
fetch-registry: true #開啟檢索服務
service-url:
# defaultZone: http://localhost:7001/eureka/ #單機版Eureka註冊中心
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ #將3台eureka都註冊進去
instance:
instance-id: microservicecloud-dept8001 #status的默認名稱修改
prefer-ip-address: true #訪問路徑可以顯示IP地址
info: #Eureka中針對本服務端的信息描述
app:
name: jacob-microservicecloud
company:
name: www.jacob.com
build:
artifactId: $project.artifactId$
version: $project.version$
6. 依序啟動7001、7002、7003、8001微服務來做測試,因為我們已針對eureka的域名做了不同設定,我們訪問不再是使用localhost:7001,而是改用http://eureka7001.com:7001/,進入後可以看到我們也同時掛了7002及7003的eureka service,也可以換成7002、7003做測試,這樣,我們就完成了Eureka的集群配置。
以上,為針對Eureka集群配置的相關分享,下一篇將會和大家分享如何實做Spring Cloud的負載均衡,文章若有不正確之處,還請大家多多指教,謝謝大家~
參考文獻
尚硅谷Spring Cloud教程