說框架設計思路

2022-02-15 01:10:34 字數 2112 閱讀 3301

其旨在打造乙個集應用開發、大資料儲存、處理、分布式計算、自動化部署的無節點微服務集中開發與執行平台,以響應業務的快速變更,滿足系統對大資料,大併發與開發效率的需求;

平台設計以資料為核,以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...