到目前爲止,咱們整個初級廣告檢索系統就初步開發完成了,咱們來總體回顧一下咱們的廣告系統。整個廣告系統編碼結構以下:java
mscx-ad
父模塊
主要是爲了方便咱們項目的統一管理spring
mscx-ad-db
這個模塊主要有2個做用,自己只應該做爲數據庫腳本管理package來使用,可是咱們在生成索引文件的過程當中,爲了方便,我就直接將導出
全量索引
的json文件生成也寫在了該項目中。 主要目的仍是經過flyway
進行數據庫腳本的管理。sql
mscx-ad-common
這個主要是一些通用工具類的存放數據庫
mscx-ad-feign-sdk
這個jar包主要是爲了服務間的調用,爲了統一管理各類
pojo
以及CustomFeignClient
而建立的,方便一次修改,全局應用,。固然若是項目團隊不大的時候,你徹底能夠在不一樣的project中建立相同的vo對象,目前RPC中大多如此設計。json
mscx-ad-dashboard
這個是
hystrix
提供的可視化管理工具,固然,後期我一樣會使用咱們的阿里大大的sentinel
將其替換掉,敬請期待。segmentfault
mscx-ad-discovery
這個我命名的時候沒有使用
ad-eureka
,在項目中也是儘可能使用的SpringCloud Common
抽象的公共註解,好比@EnableDiscoveryClient
,其實有心的同窗能看的出來,我打的主意也是想要後續替換的,咱們可使用ZK,可是我後期一樣會使用咱們阿里大大的NACOS
來替換掉它。工具
mscx-ad-zuul
網關路由組件,沒啥特別的,後續使用gateway替換post
mscx-ad-sponsor
廣告新增的主要模塊,爲廣告主服務學習
mscx-ad-search
整個廣告系統的核心,對外暴露查詢服務。編碼
爲了咱們系統的高可用,上述系統理論上都須要多實例部署。
咱們在廣告檢索服務中使用到了監聽 Mysql數據庫的 Binlog
來實現增量索引,你們不妨想一想,若是咱們的系統請求很高,咱們的binlog
就須要被N多的服務實例所監聽,這樣會有什麼問題? 爲何會有這種問題? 怎麼修改是合理的?
從2018年10月31號,咱們阿里大大開源發佈了Spring Cloud Alibaba
,通過1年的項目孵化,終於在2019年8月1號畢業了小馬哥威武, SC-Alibaba Team 威武。爲了迎接這一偉大的國內Spring盛世,接下來我會寫一個學習SCA的課程,途中遇到的全部問題都會和你們一塊兒共享,加油。
奔跑的人生 | 博客園 | segmentfault | spring4all | csdn | 掘金 | OSChina | 簡書 | 頭條 | 知乎 | 51CTO