注冊用戶即可下載全站資源 關注Java幫幫微信公眾號
 

微服務架構實踐之郵件通知系統改造

1
發表時間:2018-11-08 13:52來源:Java幫幫-微信公眾號

拆分背景

隨著平臺業務增長,功能耦合度越來越高,部署周期變長,代碼樣式混亂、新人入手復雜、獨立功能影響系統的穩定性等等,等等,等等問題。

以郵件通知為案例對服務進行拆分,獨立服務,獨立部署,獨立進程,做到及時上線而不影響平臺正常運營。

日本韩国三级aⅴ在线观看以此為例,望大家對于經手的功能模塊,有一個良好的規劃,不要礙于項目進度而給自己或者別人制造麻煩。

拆分原因

  • 郵件通知分散于各個系統,配置變更容易遺漏

  • 日本韩国三级aⅴ在线观看代碼分散,功能修復麻煩,相應的增加部署難度

  • 多人經手,代碼風格不同,不易于維護

  • 日本韩国三级aⅴ在线观看發送模版不規范,導致發送風格迥異

  • 線上生產環境出現問題,在不影響正常運行的情況下,不易于修復

  • 日本韩国三级aⅴ在线观看功能集成在項目,增加了調試的難度

  • 影響平臺穩定性

拆分優勢

日本韩国三级aⅴ在线观看系統拆分雖然會增加了復雜性,但是可以得到更多的好處

  • 日本韩国三级aⅴ在线观看數據閉環實現自我管,不依賴于任何系統,即去依賴化這樣的好處是別人抖動不會影響到自己

  • 數據異構,即將各個系統的數據傳輸過來,按照自己的要求去處理

  • 基于Maven管理項目,相比于項目中的Ant構建更高級,當然功能不僅僅是構建,還有一些列的優勢

  • SpringMvc+Dubbo實現服務治理,對外開放接口,也可以自定義實現HTTP請求

  • 基于Thymeleaf模版,實現郵件動態內容模板話,良好的封裝,便于開發和查閱

  • 初次采用Log4j2 ,睜大眼睛是二,沒錯,對比log4j和logbak性能大幅度提升

  • 日本韩国三级aⅴ在线观看獨立服務,獨立部署,獨立進程,更加靈活易部署,易擴展

  • 日本韩国三级aⅴ在线观看使用LinkedBlockingQueue安全隊列做任務隊列(咱不考慮)

  • 額外增加Redis是為了在大量郵件發送請求下緩解郵件發送服務器壓力(咱不考慮)

技術實現

Maven、SpringMvc、Dubbo、Redis、Thymeleaf、Log4j2、MQ

技術問題

如何快速入門Maven
如何輕松搭建一個Maven項目框架
對于在Maven庫中不存在的Jar該如何處理
如何搭建SpringMvc基礎配置
關于Log4j2的正確使用
模版Thymeleaf如何生成靜態文件
任務隊列LinkedBlockingQueue實現
redis使用場景
MQ使用場景

架構圖例

關于Maven


關于流程


支付寶贊助-Java幫幫社區
微信贊助-Java幫幫社區
Java幫幫公眾號生態

Java幫幫公眾號生態

總有一款適合你

Java幫幫-微信公眾號

Java幫幫-微信公眾號

將分享做到極致

Python幫幫-公眾號

Python幫幫-公眾號

人工智能,爬蟲,學習教程

大數據驛站-微信公眾號

大數據驛站-微信公眾號

一起在數據中成長

九點編程-公眾號

九點編程-公眾號

深夜九點學編程

程序員生活志-公眾號

程序員生活志-公眾號

互聯網,職場,程序員那些事兒

Java幫幫學習群生態

Java幫幫學習群生態

總有一款能幫到你

Java學習群

Java學習群

與大牛一起交流

大數據學習群

大數據學習群

在數據中成長

九點編程學習群

九點編程學習群

深夜九點學編程

python學習群

python學習群

人工智能,爬蟲

測試學習群

測試學習群

感受測試的魅力

Java幫幫生態承諾

Java幫幫生態承諾

一直堅守,不負重望

初心
勤儉
誠信
正義
分享
合作品牌 非盈利生態-優質內容分享傳播者
關于我們
友鏈申請
友鏈交換:加幫主QQ2524138991 留言即可 24小時內答復  
全站內容非商業用途,內容來源于網友,并遵循 許可,如有異議請聯系客服。
會員登錄
獲取驗證碼
登錄
登錄
我的資料
留言
回到頂部