使用消息隊列會增加項目的復(fù)雜度。我的一個Side project是一個郵件相關(guān)的項目封字,主要功能是接收和發(fā)送郵件捌省,是一個saas類型的項目,用戶使用我的API發(fā)送和接收郵件互订,為了縮短API block用戶請求進(jìn)程的時間吱肌,我把所有的實(shí)現(xiàn)代碼移到隊列里面。所以隊列的消費(fèi)進(jìn)程需要抽象出公共的配置文件屁奏,比如數(shù)據(jù)庫的連接信息岩榆,Model,某些應(yīng)用抽象了業(yè)務(wù)邏輯,這些部分的代碼也需要放置在一個公共的項目里面勇边。
原本項目是一個叫replybymail-web的包犹撒,后來因?yàn)榘l(fā)送郵件部分的代碼需要放置在隊列里面,建立了一個叫做replybymail-sender的rabbitmq消費(fèi)者進(jìn)程粒褒,這個消費(fèi)進(jìn)程用pm2來啟動识颊。這是sender需要和web公用同一個replybymail-model的包,model的包所有需要的模型的代碼奕坟,同事新增了reply-common祥款,包括
- 一些加密的方法
- 配置信息如RabbitMQ的連接地址和用戶名密碼
- 一些依賴配置
- 一些公共的方法
這時,我們的結(jié)構(gòu)就變成了這樣月杉。
replybymail架構(gòu)圖.png