1. 程式人生 > >說框架設計思路

說框架設計思路

集中 scrip red 例如 bfd 計算 技術 分布式 pro

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

平臺設計以數據為核,以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

restapi定義了項目對外提供的rest接口;其通過urlmapping來映射外部訪問地址,urlmapping為ant表達式,例如:/foo/**或/foo/*/bar

rest接口可以綁定授權,你實現權限驗證;rest接口也可以支持mockscript,實現mock;支持通過docapi來指定接口文檔。

本地接口 - localapi

本地接口,主要用於在項目內定義一些公共方法,以便其它腳本使用,內部接口可以通過項目腳本對象的call方法來調用,例如:def robj = prj.call(‘foo‘, name:‘abc‘);

項目過濾器 - filter

過濾器用於攔截請求,其分為項目filter與全局filter

項目filter只能對當前項目的restapi或filter進行攔截,其通過urlmapping來指定攔截路徑。

全局過濾器 - 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 輿情采集系統

安全漏洞掃描,風險原因分析及解決方案

說框架設計思路