這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
前言
Golang 是 Google 在2007年發布的一門開源的靜態編譯型程式設計語言,在記憶體回收、結構類型以及並發編程的處理上擁有自己的獨到之處,近年來更是成為使用頻率上升速度最快的程式設計語言之一。
想必大家對於 Golang 的大名早已有所耳聞,而今天作者菌則準備通過自己的一個開源項目 GoCollaborate 為例,給大家介紹一下我們如何利用Golang快速開發高效能伺服器叢集,並將之應用到能源網路,量化交易,區塊鏈,機器學習等等大資料計算情境。
GoCollaborate 是什麼?
很多同學看到這裡可能會問了,這個架構什嗎?我又能用它來做什麼呢?
簡而言之,
GoColaborate 是一個提供分布式服務管理搭建的輕量級通用架構,您可以輕鬆地用它進行編程,構建擴充,以及建立自己的高效能分布式服務。
有相關從業經驗的同學可能聽說過 Apache Hadoop,阿里的 Dubbo 以及 Facebook 的 Thrift,一套工具集下來是不是感覺暈頭轉向呢?不要緊,我們在這姑且暫時把它當成一個輕量級的 Hadoop 好了,隨著教程展開,讓我們一起來體驗Golang的神奇魅力。
目錄 (進行中...)
- 初始化項目結構
- 啟動命令列
- 日誌模組搭建
- 本地函數管理
4.1. 函數註冊
4.2. 函數調用
4.3. 函數執行傳回值監聽
4.4. 雜湊函數
- 伺服器核心模組搭建
5.1. Master-Worker 模式
5.2. Task 的定義與優先順序調度機制
5.3. 定製任務 runtime 環境 TaskContext
5.4. 任務發布器 Publisher 的設計
- RPC 通訊機制的應用
6.1. 網路地址管理
6.2. 同步通訊
6.3. 任務分發及非同步呼叫
6.4. 映射表map的進程安全設計
- Restful 架構設計
7.1. JSON API 標準
7.2. JSON Schema 的應用
- 微服務架構搭建與管理
8.1. Service 的初始化
8.2. Service 的註冊與訂閱
8.3. 微服務路由設計
- Map-Reduce 的實現
9.1. Mapper 介面
9.2. Reducer 介面
- 記憶體管理及 Garbage Collection 機制
在這裡作者菌也說句題外話,俗語有言,冰凍三尺非一日之寒,GoCollaborate 社區需要藉助大家的力量才能繼續成長,歡迎 star,歡迎 fork ,更歡迎各位大蝦提交代碼哦~