開發黑名單功能demo 中臺實踐 通用化黑名單平台

2021-10-12 08:55:53 字數 1815 閱讀 4680

業務中颱的價值主要體現在對通用化業務能力的沉澱、整合,通過對可復用業務流程和業務功能的設計,向不同業務方提供標準化且可擴充套件的服務能力。本文來聊一聊筆者工作過程中設計的通用化黑名單平台,通過將使用者管控能力的下沉,為各業務團隊提供一套通用的黑名單/白名單業務能力。

在風控識別、業務運營等流程當中,會涉及到對於某類使用者進行「特殊對待」,比如惡意使用者、高風險使用者,在業務流程中可能會增加對使用者的使用功能的限制,這類使用者就屬於黑名單使用者。在不同的業務場景中,會基於不同規則去定義黑名單使用者,並這種符合這類特種的使用者進行統一化的管控。

當然還有一類特殊的使用者群體,他們因為使用場景的特殊化也可能命中黑名單使用者的規則。但是業務場景中又是允許這類使用者存在的,那麼這類使用者就屬於白名單使用者,屬於凌駕於黑名單規則之上的一類特殊使用者群體。

目前在現有中臺架構下,不同業務模組都維護各自的黑名單體系,存在同乙個業務場景的黑名單維護多套,或者同一套黑名單可以多個業務團隊共用的問題。這就導致各團隊開發既可能產生資料冗餘,重複開發資源浪費的問題。

基於當前的問題,通過搭建中臺黑名單平台,由各業務團隊介入黑名單平台,針對各業務場景維護統一黑名單,可以由不同業務團隊共享黑名單資料資源進行業務使用。

既然做通用化,那麼黑名單平台盡可能不做具備業務屬性的邏輯,即通使用者平台負責提供黑名單/白名單資料的統一使用服務,也就是針對資料的增、刪、改、查能力。同時,為了保證各業務使用方可以實時獲取資料,平台提供一套訊息廣播機制,可以讓業務使用方可以快速獲取資料的更新狀態,即時針對不同狀態做出業務響應。

基於上面提到的業務場景、業務邊界,設計了業務架構模式如下:

(2)業務方(如上圖中業務方a、b)可以通過通使用者平台提供的前端視覺化頁面,通過給不同業務方配置不同許可權體系,支援業務方進行資料的增刪改查。同時也支援基於系統呼叫的api介面方式,進行資料的使用。

(3)為保證資料更新後的即時響應,在資料更新後,如資料的新增、刪除,通用化平台通過訊息廣播機制,向業務使用方(如上圖中業務方c、d)進行廣播,如果業務方關係資料更新訊息,可基於業務場景做出相應的業務動作,保證資料更新與業務的同步性。

(1)統一化

在設計資料的使用方式方面,做了盡可能的統一化設計。在設計底層資料介面方面,針對增刪改查的資料介面,先對盡可能全的業務場景進行梳理,針對不同顆粒度的業務進行規劃,保證資料介面服務的統一性,後續各業務團隊介面,都是統一的接入流程和介面服務。

(2)個性化

針對不同業務場景,資料的表現形式終歸會有不同的地方,除了對整個業務流程中沒有異議的資料內容進行標準化定義外,為滿足不同團隊的業務需求,在資料儲存方面,資料結構中增加了可擴充套件的json欄位。這個欄位的資料內容由各業務方自助定義資料的業務含義,在資料查詢時基於各業務的團隊的場景進行解析後使用,既保證了各業務團隊資料使用的個性化需求,由保證了中颱通用化模組的通用能力。

(3)擴充套件性

對於黑名單/白名單資料儲存,資料存在多維度屬性,通過資料業務型別分類進行區分,例如使用者維度型別,可通過列舉區分身份證號、會員卡號、手機號等型別,欄位的型別設計相對相容,在後續資料型別擴充套件上,可以做到減少底層邏輯的重新開發帶來的時間、資源成本。

(4)如何做到上述3點呢?

所有的中台化產品設計都是在對業務充分了解的基礎上,將統一化、個性化、擴充套件性進行設計與權衡,當然在方案落地過程中不可避免的要做出各種各樣的妥協與讓步,但是作為業務中臺設計者,要堅守產品設計的邊界與底線,這才是中颱產品存在的意義與價值。

題圖來自 unsplash,基於 cc0 協議

aws 黑名單功能

如果你想授權某段ip訪問,那麼可以用安全組的白名單功能,但是安全組不提供黑名單功能。如果我們的某個服務受某個ip攻擊,那麼此時可以選擇網路acl對其進行黑名單限制,操作步驟如下 1.登入aws,選擇vpc 2.vpc裡有個網路acl,當然事先你要找到你服務對應的vpc 3.選擇編輯入站規則,入站規則...

kingshard SQL黑名單功能介紹

在kingshard開源之後,有使用者多次提到能不能在kingshard中加入sql黑名單機制,讓kingshard能夠根據特定的規則來攔截在黑名單中的sql。有幾個比較典型的應用場景 dba定義一些比較危險的sql,放在sql黑名單檔案中。可以避免前端應用發過來的sql對資料庫造成危害。這種sql...

android中黑名單的實現

說明 由於結束通話 android api不是對外開放的,所以需要使用反射的方法得到撥打 的服務。1.將android源 中的 aidl 檔案拷貝到專案中 這樣專案中會生成兩個包 android.telephony 此包中檔案為 neighboringcellinfo.aidl com.androi...