其旨在打造乙個集應用開發、大資料儲存、處理、分布式計算、自動化部署的無節點微服務集中開發與執行平台,以響應業務的快速變更,滿足系統對大資料,大併發與開發效率的需求;
平台設計以資料為核,以groovy指令碼為基礎,通過提供api、非同步訊息處理、排程等基礎構件來支援應用的快速開發;
核心是通過整合現有開源專案來實現的,其主要用到的技術棧包括:spring cloud, zookeeper, kafka, elasticsearch, mysql, kudu(hadoop系列), fastdfs,redis, quartz, maxwell, groovy, activitiy,couchdb等。
專案 - project
其對應乙個微服務應用,乙個專案定義了乙個應用的邊界,每個專案有唯一的**與請求上下文路徑,所有資源,介面,排程,通道或觸發器都必需歸屬乙個專案,專案與專案之間的呼叫需要授權。
模組 - module
其對應專案下的乙個模組,每個模組可以由一系列的節點組成,方便進行管理。
資源 - resource
資源定義了專案中可以使用的資料庫,訊息,快取,檔案儲存等服務,專案資源只能引用平台上配置的全域性資源,在後續的api等指令碼中,可以通過資源指令碼物件對資源進行操作。
計畫支援的資源型別:mysql,oracle,kudu,es(elasticsearch),redis,kafka,filestore,couchdb
外部介面 - restapi
rest介面可以繫結授權,你實現許可權驗證;rest介面也可以支援mockscript,實現mock;支援通過docapi來指定介面文件。
本地介面 - localapi
本地介面,主要用於在專案內定義一些公共方法,以便其它指令碼使用,內部介面可以通過專案指令碼物件的call方法來呼叫,例如:def robj = prj.call('foo', name:'abc');
專案過濾器 - filter
過濾器用於攔截請求,其分為專案filter與全域性filter
全域性過濾器 - globalfilter
全域性filter可以攔截所有專案的restapi或filter進行攔截,專案中如需要配置全域性filter必需獲得管理員為其配置的「全域性filter"定義的授權。
專案通道 - channel
通道主要用於非同步處理,其對應乙個kafka的topic,在指令碼中可以通過prj.sendchannel('foo', 'valuestr')的方式觸發channel指令碼的執行。
channel預設是有序單佇列的,如果需要支援無序併發處理,請將配置的hostnum設定大於1,考慮到資源占用,暫時最高不能大於100。
全域性通道 - publicchannel
全域性通道主要用於向其它專案廣播,例如在產品主資料修改後,聯採,交易,結算等都需要同步資料。
其它專案如需要監聽當前通道,需要通過allowpullprojects為其它專案授權,其它專案可以使用publicreciver來監聽其它專案的廣播。
其它專案如需要傳送資料到當前通道,可以通過prj.sendpublicchannel('project', 'channelname', 'valuestr')來實現,同時當前通道需要設定allowpushprojects來授權。
全域性訊息處理器 - publicreciver
用於接收全域性廣播,其對應publicchannel
觸發器 - trigger
監聽資料庫的變動,當前只支援mysql;
排程 - schedule
用於定義專案中的排程,通過定義cron表示式來指定執行週期。
es資料集 - dataset
用於定義elasticsearch的索引庫,其可以通過copyfromtable來同步某個資料庫表的結構;
dataset變更後需要重建索引才會生效。
資料庫表 - table
用於定義資料庫資源中的表。
資料初始化 - datainit
用於定義資料庫資源中的初始化資料。
推薦閱讀:
kafka 入門教程
你可以不懂但一定要知道的**審查 code review
elk stack 實戰教程
filebeat+kafka+strom+logstash+es 輿情採集系統
安全漏洞掃瞄,風險原因分析及解決方案
Linux伺服器框架設計思路
多程序 程序池 主程序偵聽socket,將客戶端socket分配給子程序去處理。這樣程式設計簡單,可能需要用到程序間的通訊,但程序開銷很大,併發量非常小。多執行緒 執行緒池 主線程偵聽socket,將客戶端socket分配給每乙個執行緒去處理。這樣程式設計較簡單,但執行緒的建立和切換同樣開銷較大,併...
視覺化框架設計 整體思路
資料視覺化的本質是 將資料對映到圖形,同時將一些附加資訊傳達給使用者。乙個視覺化框架需要四部分 資料處理模組,對資料進行加工的模組,包括一些資料處理方法。例如 合併 分組 排序 過濾 計算統計資訊等 圖形對映模組,將資料對映到圖形視覺通道 後面章節介紹 的過程。例如 將資料對映成顏色 位置 大小等 ...
App 自動化框架設計思路
思考引入 作者提供的框架圖,思路不錯,可以參考 該架構設計思路總結 1 pm模型設計 在operation層,使用了業界通用的page object模式,即針對頁面或模組封裝操作方式,在case層呼叫operation提供的介面。2 operation實現可擴充套件 用例case層呼叫統一opera...