Docker Swarm之Eureka高可用(二)
更多深度文章,請關注雲計算頻道:https://yq.aliyun.com/cloud
在上篇文章中介紹了如何如何在Docker Swarm集群中部署Spring Cloud應用。本文章為大家介紹如何實現Eureka的高可用。
Docker Swarm運行Spring Cloud應用(一):部署
Docker Swarm運行Spring Cloud應用(二):Eureka高可用(本文)
基礎服務獨立部署
把所有服務一次性部署好非常方便,但是在生產環境中使用的時候需要考慮這樣一些因素:
在生產環境中的基礎服務,如Eureka由於更新不頻繁,應該和頻繁更新應用服務分開部署
作為基礎服務的Eureka需要考慮高可用
我們可以把部署描述檔分成兩部分,eureka.yml 用來部署作為基礎服務的Eureka Server,是包含三各節點的集群。
eureka.yml
version: '3'services: eureka1: image: binblee/demo-eurekaserver networks:Eureka部署到的網路springcloud-overlay需要手動創建,命令如下:
docker network create -d overlay springcloud-overlay從部署模版中可以看出這三個Eureka實例在網路上的別名(alias)都是eureka,
application.yml
eureka.client.serviceUrl.defaultZone=http://${EUREKA_SERVER_ADDRESS}:8761/eureka/Eureka Server的地址通過${EUREKA_SERVER_ADDRESS} 環境變數傳入。
services: web: image: binblee/demo-web另外要注意的是所有依賴于Eureka的應用服務都要掛到springcloud-overlay網路上,否則無法和Eureka Server通信。下面是比較完整的部署描述文件的示例:
version: '3'services: web: image: binblee/demo-web networks:部署這幾個服務需要3個步驟,首先創建overlay網路,然後部署Eureka,最後再部署應用服務。命令如下:
docker network create -d overlay springcloud-overlay訪問Swarm集群中的任意節點的8761埠,
小結
本文章為大家介紹如何在Docker swarm-mode集群部署一個Eureka集群,並配置應用服務訪問Eureka。通過這樣的方式可以很方便地做到基礎服務和應用分開部署,
另外,瞭解更多阿裡雲容器服務內容,請訪問 https://www.aliyun.com/product/containerservice