[Spring cloud 一步步實現廣告系統] 22. 廣告系統回顧總結

  • 2019 年 10 月 3 日
  • 筆記

到目前為止,我們整個初級廣告檢索系統就初步開發完成了,我們來整體回顧一下我們的廣告系統。
整個廣告系統編碼結構如下:
廣告系統

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