Austin消息推送平臺(tái)
Austin 是一個(gè)消息推送平臺(tái)。推送下發(fā)【郵件】【短信】【微信服務(wù)號(hào)】【微信小程序】【企業(yè)微信】【釘釘】等消息類型。所使用的技術(shù)棧包括:SpringBoot、SpringDataJPA、MySQL、Docker、docker-compose、Kafka、Redis、Apollo、prometheus、Grafana、GrayLog、Flink、Xxl-job、Echarts 等等。
austin 項(xiàng)目核心功能:統(tǒng)一的接口發(fā)送各種類型消息,對(duì)消息生命周期全鏈路追蹤
項(xiàng)目出現(xiàn)意義:只要公司內(nèi)有發(fā)送消息的需求,都應(yīng)該要有類似austin的項(xiàng)目,對(duì)各類消息進(jìn)行統(tǒng)一發(fā)送處理。這有利于對(duì)功能的收攏,以及提高業(yè)務(wù)需求開(kāi)發(fā)的效率。
系統(tǒng)項(xiàng)目架構(gòu)
austin 項(xiàng)目核心流程:austin-api接收到發(fā)送消息請(qǐng)求,直接將請(qǐng)求進(jìn)MQ。austin-handler消費(fèi)MQ消息后由各類消息的 Handler 進(jìn)行發(fā)送處理。
Question :為什么發(fā)個(gè)消息需要MQ?
Answer:發(fā)送消息實(shí)際上是調(diào)用各個(gè)服務(wù)提供的API,假設(shè)某消息的服務(wù)超時(shí),austin-api如果是直接調(diào)用服務(wù),那存在超時(shí)風(fēng)險(xiǎn),拖垮整個(gè)接口性能。MQ在這是為了做異步和解耦,并且在一定程度上抗住業(yè)務(wù)流量。
Question:能簡(jiǎn)單說(shuō)下接入層做了什么事嗎?
Answer:
Question:austin-stream和austin-datahouse的作用?
Answer:austin-handler在發(fā)送消息的過(guò)程中會(huì)做些通用業(yè)務(wù)處理以及發(fā)送消息,這個(gè)過(guò)程會(huì)產(chǎn)生大量的日志數(shù)據(jù)。日志數(shù)據(jù)會(huì)被收集至MQ,由austin-stream流式處理模塊進(jìn)行消費(fèi)并最后將數(shù)據(jù)寫(xiě)入至austin-datahouse
Question:austin-admin和austin-web和austin-cron的作用?
Answer:autsin-admin是austin項(xiàng)目的前端項(xiàng)目,可通過(guò)它實(shí)現(xiàn)對(duì)管理消息以及查看消息下發(fā)的情況,而austin-web則是提供相關(guān)的接口給到austin-admin進(jìn)行調(diào)用(austin項(xiàng)目是前后端分離的)
業(yè)務(wù)方可操作austin-admin管理后臺(tái)調(diào)用austin-web創(chuàng)建定時(shí)發(fā)送消息,austin-cron就承載著定時(shí)任務(wù)處理的工作。
