到目前為止,我們整個初級廣告檢索系統就初步開發完成了,我們來整體回顧一下我們的廣告系統。 整個廣告系統編碼結構如下: 1. 父模塊 主要是為了方便我們項目的統一管理 2. 這個模塊主要有2個作用,本身只應該作為資料庫腳本管理package來使用,但是我們在生成索引文件的過程中,為了方便,我就直接將導 ...
到目前為止,我們整個初級廣告檢索系統就初步開發完成了,我們來整體回顧一下我們的廣告系統。
整個廣告系統編碼結構如下:
1.mscx-ad
父模塊
主要是為了方便我們項目的統一管理
2.mscx-ad-db
這個模塊主要有2個作用,本身只應該作為資料庫腳本管理package來使用,但是我們在生成索引文件的過程中,為了方便,我就直接將導出
全量索引
的json文件生成也寫在了該項目中。 主要目的還是通過flyway
進行資料庫腳本的管理。
3.mscx-ad-common
這個主要是一些通用工具類的存放
4.mscx-ad-feign-sdk
這個jar包主要是為了服務間的調用,為了統一管理各種
pojo
以及CustomFeignClient
而創建的,方便一次修改,全局應用。當然如果項目團隊不大的時候,你完全可以在不同的project中創建相同的vo對象,目前RPC中大多如此設計。
5.mscx-ad-dashboard
這個是
hystrix
提供的可視化管理工具,當然,後期我同樣會使用我們的阿裡大大的sentinel
將其替換掉,敬請期待。
6.mscx-ad-discovery
這個我命名的時候沒有使用
ad-eureka
,在項目中也是儘量使用的SpringCloud Common
抽象的公共註解,比如@EnableDiscoveryClient
,其實有心的同學能看的出來,我打的主意也是想要後續替換的,我們可以使用ZK,但是我後期同樣會使用我們阿裡大大的NACOS
來替換掉它。
7.mscx-ad-zuul
網關路由組件,沒啥特別的,後續使用gateway替換
8.mscx-ad-sponsor
廣告新增的主要模塊,為廣告主服務
9.mscx-ad-search
整個廣告系統的核心,對外暴露查詢服務。
為了我們系統的高可用,上述系統理論上都需要多實例部署。
我們在廣告檢索服務中使用到了監聽 Mysql資料庫的 Binlog
來實現增量索引,大家不妨想想,如果我們的系統請求很高,我們的binlog
就需要被N多的服務實例所監聽,這樣會有什麼問題? 為什麼會有這種問題? 怎麼修改是合理的?
番外
從2018年10月31號,我們阿裡大大開源發佈了Spring Cloud Alibaba
,經過1年的項目孵化,終於在2019年8月1號畢業了小馬哥威武, SC-Alibaba Team 威武。為了迎接這一偉大的國內Spring盛世,接下來我會寫一個學習SCA的課程,途中遇到的所有問題都會和大家一起共用,加油。
我的博客即將同步至騰訊雲+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=2sndng6f1kmc8