摘要:項目介紹簡單地多模塊項目,模塊間通過進行消息傳遞,使用作臨時存儲作緩存作最終數據存儲。
modular 項目介紹
簡單地多模塊項目,模塊間通過kafka進行消息傳遞,使用Mysql作臨時存儲、Redis作緩存、MongoDB作最終數據存儲。
項目代碼獲取:https://github.com/pysasuke/m...
modular-common(公用模塊)
modular-common-base(簡單公用類)
modular-common-database(Mysql相關模塊)
modular-common-kafka(Kafka相關模塊)
modular-common-mongo(MongoDB相關模塊)
modular-common-redis(Redis相關模塊)
modular-handler(請求處理模塊)
modular-first(第一部分服務模塊)
modular-second(第二部分服務模塊)
modular-third(第三部分服務模塊)
modular-exhandler(異常數據處理模塊)(補償機制)
基本流程由于只是demo,故只用簡單地first、second、third指代具體服務,切以third服務為最終服務,handler也是使用手動構造的數據
請求發起
經handler模塊后
向Mysql寫入一條數據
向Redis寫入一條數據
向Kafka發送一條消息
first模塊收到handler模塊發送的消息后
從Redis取出對應數據并校驗
成功后修改Mysql數據
修改Redis數據
向Kafka發送一條消息
second模塊接收到first模塊的發送的消息后
從Redis取出對應數據并校驗
成功后修改Mysql數據
修改Redis數據
向Kafka發送一條消息
third模塊接收到second模塊的發送的消息后
從Redis取出對應數據并校驗
成功后向MongoDB寫入一條數據
刪除Redis數據
刪除Mysql數據
exhandler模塊為補償機制
按照一定的策略處理Mysql中遺留的錯誤數據(正常情況所有數據都將轉移到MongoDB中)
項目啟動執行deploy中update.sql創建record表
替換modular-common-database中application.properties配置文件中的相關參數為自己的Mysql參數
替換modular-common-redis中application.properties配置文件中的相關參數為自己的Redis參數
替換modular-common-mongo中application.properties配置文件中的相關參數為自己的MongoDB參數
修改modular-common-base中KafkaConstants類中BOOTSTRAP_SERVERS常量為自己Kafka地址(由于只是demo,故未做成配置文件)
啟動相關服務
正常流程
modular-handler(請求處理模塊)
modular-first(第一部分服務模塊)
modular-second(第二部分服務模塊)
modular-third(第三部分服務模塊)
補償機制
modular-exhandler(異常數據處理模塊)
結果預測modular-first:輸出 first service complete
modular-second:輸出 second service complete
modular-third:輸出 third service complete
MongoDB中寫入了一條數據
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/19176.html
摘要:項目介紹簡單地多模塊項目,模塊間通過進行消息傳遞,使用作臨時存儲作緩存作最終數據存儲。 modular 項目介紹 簡單地多模塊項目,模塊間通過kafka進行消息傳遞,使用Mysql作臨時存儲、Redis作緩存、MongoDB作最終數據存儲。項目代碼獲取:https://github.com/pysasuke/m... 項目結構 modular-common(公用模塊) modul...
摘要:父類為,代表著一系列文章的列表。對于可讀性較好地與代碼,不應該像一本書,而應該像一個故事,一個故事中會存在角色和角色之間的關系,而這種更多的語義化地可以較好地提示你整個代碼的可維護性。無論哪種文件組織方式比較順眼,你都應該遵循統一的原則。 原文地址。本文從屬于Web 前端入門與最佳實踐。 CSS的學習是一個典型的低門檻,高瓶頸的過程,第一次接觸CSS的時候覺得一切是如此簡單,直到后面越...
摘要:還有一個值得關注的是加密媒體擴展標準其支持用原生和開發播放加密視頻。專業流媒體發布商將無法依靠微軟的技術在和安卓設備上的火狐來加密自己的內容。因此,不同的系統組合,如用于和安卓的,用于和的,還有用于的。 英文原文:HTML5 Media Source Extensions: Bringing Production Video To The Web 在過去的十幾年,像Flash和Silv...
閱讀 3574·2021-10-15 09:43
閱讀 3495·2021-09-02 15:21
閱讀 2205·2021-08-11 11:23
閱讀 3246·2019-08-30 15:54
閱讀 1933·2019-08-30 13:54
閱讀 3208·2019-08-29 18:35
閱讀 676·2019-08-29 16:58
閱讀 1748·2019-08-29 12:49