大數據平台組技術路線執行理念


大數據平台組技術路線執行理念

寫在最前:自己是一個思維靈活人員,就是太靈活,視角很寬,看到了很多新東西就想要嘗試並學習、引入,但深入不夠,同時架構太大出問題機率直線升高,有明確的執行理念指導,是非常必要的,做任何決定前必須想到這個基本理念,切切。


0、精兵強將,穩扎穩打
解讀:不可盲目擴張人員,人多了管理成本增加,水平參差不齊,代碼質量無法掌控。慢一點沒關系,做一步回頭看兩步,
穩步向前。

1、足夠簡單,完全可控
解讀:盡量使用熟悉可控的軟件,盡量少。出問題可以自主檢查分析的。

2、穩定第一,運維優先
解讀:沒有成功先想着失敗,一旦要保證備份,監控先行,集中精力打造思考運維平台,一出故障就會受到嚴重質疑。

3、深度研究,謹慎擴展
解讀:對於使用的技術,一定要深研到底,不可淺嘗輒止。對於引入新技術棧,要慎之再慎。

=======================================================
選型:
1、選擇Golang,放棄 Java
理由:為了將服務分割成微服務,各業務模塊獨立編譯,彼此之間強制隔離,各部分代碼獨立成項目,一個可執行文件,獨立數據庫。

2、選擇postgresql,放棄mysql
理由:mysql在斷電等異常情況下表現不佳,同時,我們在數據倉庫中選型是GreenPlum,同樣是postgresql技術體系,雙線做戰不如統一技術路線。

 

 3、選擇自主研發go-sso項目,放棄cas和xxl-sso

理由:統一技術棧,把所有技術細節抓在自己手中,整個框架可以先慢后快,不要出現不可控制的細節。

# go-sso

* "/login"  登錄頁面
*  "/Success" 登錄成功頁面
*   "/serviceValidate" 驗證接口
*  使用全局攔截器進行授權攔截,即校驗cookie中的用戶名,與票據的正確性。(1:是不是存在,2:如果存在,那么是不是鑒權中心發放的密碼(DES自加自解))
  
* jwt-go 創建簽名
  
  涉及到創建Token,和檢驗Token

## 使用
第三方直接點擊跳轉到
http://127.0.0.1:8080/login?service=http://www.xxxx.com.cn/ceo_data 

賬戶密碼驗證成功后,會跳轉到service中,並帶上token

第三方系統只需要通過接口”/serviceValidate“ 驗證就可以判斷是否登錄,並且能得到用戶信息哦。

 

4、微服務的實現方案 rpcx

理由:選擇簡單,好用,基於golang,不支持其它語言。基於rpc通訊,性能高,符合選型的整體哲學。

 

5、選擇greenplum

理由:做為數據倉庫使用,系統日志采用也保存到這里,暫不上線ES。

 

6、ETL工具

DATAX,需要開發kafka的讀插件和寫插件。

 

7、spark或flink

理由:未來肯定會有流計算出現,目前的一期目標集中在greenplum,慢慢擴展。

8、推薦算法KNN等
需要不斷學習概念,抽取模型。

 

9、全部使用POST請求,不允許使用GET方式。【強制】

https://www.v2ex.com/amp/t/595188

 

10、PostgreSQL備份

https://www.cnblogs.com/python-gm/p/9723478.html

 

11、golang gin框架 使用swagger生成api文檔

https://www.cnblogs.com/Dong-Ge/p/11351559.html

 

12、全面禁止使JOIN,對,是全部禁止使用。

原因:

(1)以后分庫后,可能表都不在一個實例的機器上,比如資源表與人員表可能存在分布式的兩台機器上,沒法跨機器JOIN.

(2)JOIN在大表上性能差,無法使用緩存。

(3)在代碼層采用多次SQL查詢,調用服務RPC接口,調用MODEL層方法,ID IN ( REDIS緩存 ) 等方式進行改造。我將在自已動手的第一個基礎數據模塊中進行全面實踐,並整理出經驗分享給團隊所有成員。阿里的規則是不允許多於2張表,我再狠一點,直接禁止了,一了百了。

企業級數據倉庫實戰

https://www.bilibili.com/video/av63753220/?spm_id_from=333.788.videocard.6


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM