我們的所用的SPRING CLOUD微服務(wù)運行架構(gòu)如下:

image.png
系統(tǒng)在生產(chǎn)環(huán)境統(tǒng)一通過docker swarm 運行,分為3個層:
- middleware 層(中間件層):db server, redis server, file server, mq server 等
- infra 層(微服務(wù)基礎(chǔ)設(shè)施層): spring cloud 微服務(wù)基礎(chǔ)設(shè)施,如 eureka, spring cloud config, oauth2 server, admin, zipkin等
- ms-app 層(微服務(wù)應(yīng)用層): 業(yè)務(wù)邏輯微服務(wù),如用戶微服務(wù)、運單微服務(wù)等
以上順序由上到下進行啟動,在 ms-infra 層面,優(yōu)先啟動服務(wù)發(fā)現(xiàn)(eureka server,對應(yīng)圖中的 service discovery server),隨后 config server 也在服務(wù)中心進行注冊。
這種做法的優(yōu)點是微服務(wù)啟動方式很簡單,只需要基于 service discover 及 config server 的運行基礎(chǔ)上,即可加載微服務(wù)配置及啟動微服務(wù)。
以下是微服務(wù)的配置文件 bootstrap.yml 說明,通過以下配置即可完成微服務(wù)的注冊、服務(wù)發(fā)現(xiàn)、配置尋找
spring:
application:
name: foo # 當(dāng)前微服務(wù)名稱
cloud:
config:
enabled: true # 啟用配置中心
fail-fast: true # 快速失敗
discovery:
enabled: true # 啟用通過服務(wù)發(fā)現(xiàn)查找配置中心
serviceId: config-server # 配置中心在服務(wù)發(fā)現(xiàn)中的service id