javascript
微服务架构案例(05):SpringCloud 基础组件应用设计
本文源碼:GitHub·點這里 || GitEE·點這里
更新進度(共6節):
01:項目技術選型簡介,架構圖解說明
02:業務架構設計,系統分層管理
03:數據庫選型,業務數據設計規劃
04:中間件集成,公共服務管理
05:SpringCloud 基礎組件應用設計
一、組件應用規劃
1、注冊中心
Eureka 組件是 Netflix 開發的,用于定位服務,基于RESTFul方式實現服務注冊與發現。包括一個EurekaServer服務端(通常是指微服務中的注冊中心) 和EurekaClient客戶端(通常指微服務中的業務服務)。Eureka支持高可用的配置,當注冊中心發現有故障的服務時,Eureka就會轉入自動保護模式,故障時不影響服務的發現和注冊,當故障恢復正常時,注冊中心的服務會進行狀態同步,繼續提供服務。
2、服務調用
Feign 組件是一個聲明式的 WebService客戶端。在Eureka注冊的服務中,可以使用Feign接口的形式來進行相關服務間的請求調用,并提供超時回退,快速熔斷的相關特性。Feign是一個便利的RestFul框架,簡化調用,通過ribbon在注冊服務器中找到服務實例,然后對請求進行服務分配,實現了負載均衡的效果,默認采用輪詢算法。
3、服務網關
GateWay網關,可以讓所有客戶端請求先通過微服務網關,跟網關進行交互,由網關進行各個微服務的請求轉發,客戶端(前端)對多服務架構無感知。降低客戶端與微服務之間的交互耦合度;便于監控,可在網關中監控數據;在網關層統一處理認證,規劃切面編程;也就是說與業務本身功能無關的公共邏輯可以在網關層統一封裝實現,類似設計模式中的門面模式。
二、注冊中心
1、服務端配置
eureka:server:enable-self-preservation: falseeviction-interval-timer-in-ms: 15000instance:prefer-ip-address: trueclient:register-with-eureka: falsefetch-registry: falseservice-url:defaultZone: http://127.0.0.1:5001/eureka/2、客戶端配置
eureka:instance:prefer-ip-address: trueclient:service-url:defaultZone: http://127.0.0.1:5001/eureka/三、Feign組件
1、Feign接口
@FeignClient("MOPSZ-SOFT-ROCKET") public interface UserSearchFeign {@GetMapping("/mq/user/search/sendBookSearch")void sendBookSearch (@RequestParam("msgContent") String msgContent) ; }2、Feign接口實現
@RestController public class UserSearchController implements UserSearchFeign {@Overridepublic void sendBookSearch(String msgContent) {} }3、接口配置
該配置文件在實現Feign接口的項目中配置就好,也可針對特定方法配置。
feign:hystrix:enabled: trueclient:config:feignName:connectTimeout: 60000readTimeout: 600004、Feign接口調用
@Resource private UserSearchFeign userSearchFeign ; userSearchFeign.sendBookSearch("");四、服務網關
1、網關組件配置
zuul:# 前綴,可以用來做版本控制prefix: /v1# 禁用默認路由,執行配置的路由ignored-services: "*"routes:# 配置 Token 服務pro6601:serviceId: mopsz-basis-tokenpath: /api/6601/**# 配置 UserClient 服務pro6102:serviceId: mopsz-user-clientpath: /api/6102/**- 配置FilterConfig進行用戶Token認證攔截;
- 配置FallBackConfig進行服務降級響應管理;
2、項目部署
在項目上線后,對外暴露一個網關服務端口,其他服務端口不對外暴露,所有的請求都必須通過網關攔截或者轉發,這就是微服務提供服務的一種常見方式。
五、源代碼地址
GitHub·地址 https://github.com/cicadasmile/husky-spring-cloud GitEE·地址 https://gitee.com/cicadasmile/husky-spring-cloud總結
以上是生活随笔為你收集整理的微服务架构案例(05):SpringCloud 基础组件应用设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一级建造师考试通过了 !
- 下一篇: 《JEECG_v3 开发手册》文档发布通