基於分散式的雲筆記實現(參考某道雲筆記)
注:
1)雲筆記程式碼可在github上下載,如果對您有用,記得star一下。
2)依賴jar包可在以下地址下載jar包,密碼:yvkj,放到web/lib下即可
3)hdfs配置參考網址
4)redis配置參考網址
一、產品簡述
雲筆記是在吸收了多年的運營資料,經過精確的大資料分析指導需求模型的建立從而實現的,雲筆記通過大資料分散式儲存解決方案解決了筆記資訊量膨脹的問題,並且通過分散式搜尋引擎服務以及資料分析推薦平臺的建立提升了使用者搜尋分享比較的能力,系統可以有針對性的提供使用者其他人分享的筆記資源擴充自己的知識行囊,並且在分享之外通過每個人的配額管理實現了非分享筆記的安全私有化,保證了使用者的私人空間。通過分散式解決方案使用者空間被設計為無限大。業務端同時提供了windows客戶端,更加貼近使用者的使用習慣,並且資料平臺支援移動裝置的接入,達到無處不學習,無處不筆記的效果。
二、技術關鍵詞
web平臺:
- nginx,keepalived+lvs ,tomcat,springmvc,jquery,fckeditor,mybatis,
- hadoop(hdfs,mapreduce),hbase,zookeeper,thrift,mysql,redis
客戶端:
- windows
三、設計理念
將雲筆記資訊分別儲存在redis和hbase中。
redis(快取):儲存每個使用者的筆記本資訊
hbase(持久層):儲存使用者的筆記本資訊、筆記本下的筆記列表、筆記具體資訊。
四、庫表設計
1.筆記本
1.1 redis
key | value |
---|---|
loginName | List<String> |
List<string>: List<筆記本的rowkey | 筆記本名稱 | 時間戳 | status>
例子: List<senfeng_134223232343|aaaddd|1401761871307|0>
- 1.2 hbase
- 表名:nb
- rowkey : loginName_ timestamp
- 列簇1:noteBookInfo(nbi):
- 列:
- notebookname(nbn):筆記本名稱
createTime(ct):建立時間
status(st):狀態
noteList(nl):筆記本下的筆記列表,是個json串(noteRowKey|name| createTime| status)
例子 senfeng403_1321312312 學習資料 123123123 1 {{“json1”},{“json2”}}
2.筆記
- 2.1**hbase**
- 表名:n
- RowKey : loginName_timestamp
- 列簇1:noteInfo(ni):筆記資訊
- 列:
- notename(nn):筆記的名字
createTme(ct):建立時間
status(st):筆記狀態 - 列簇2:ContentInfo(ci):筆記本容資訊
- 列:
- content(c):筆記內容
例子 senfeng_1323242113 基礎知識 1323242113 0 基礎知識內容
3.建立hbase表語句
create 'nb','nbi'
create 'n','ni','ci'
五、功能描述
1.筆記本功能
1.1建立筆記本:
點選全部筆記本右側的“+”號,會出現填寫筆記本名字的對話方塊
填寫筆記名字後,點選建立,筆記本建立成功
1.2修改筆記本:
雙擊想要修改的筆記本,修改“筆記本”名字。
1.3刪除筆記本:
當“筆記本”下不存在筆記內容時,單擊想要刪除的筆記本,會出現“X”號。
點選“X”號,會提示是否刪除筆記本,點選“是”,筆記本將不進入回收站,直接刪除。
如“筆記本”下存在“筆記”,需要將筆記清空後方可刪除“筆記本”。
2.筆記本功能
2.1新建筆記:
點選相應筆記本,會在右側顯示該“筆記本”下的所有筆記,點選相應筆記右側的“+”號,建立“筆記名字”,填寫完畢,點選儲存,筆記建立成功。
2.2新建或修改筆記內容:
點選對應的“筆記”,會在內容欄出現“對應筆記”的內容, “新增”或“修改”筆記內容。
編輯結束,點選儲存,筆記儲存成功;不點選儲存不予儲存。
2.3筆記分享:
點選相應筆記,會出現筆記狀態,有“分享按鈕”時為未公開的筆記。
點選“分享按鈕”,會將筆記變為分享狀態(分享後的筆記不能取消分享),此時筆記分享成功。
2.4刪除筆記:
點選相應筆記,在筆記標題右側有“X”按鈕,點選“X”按鈕,會提示“是否刪除此筆記?”,點選“是”,筆記進入“回收站”。
3.共享筆記查詢功能
3.1查詢共享筆記:
在搜尋共享筆記欄中,輸入想要搜尋的共享筆記關鍵字,會在“筆記欄”查詢出共享筆記中符合查詢條件的所有筆記。
3.2收藏共享筆記:
選中想要收藏的筆記,會在內容欄出現筆記內容,點選內容欄右側的“收藏”按鈕,會彈出“選擇收藏筆記本”對話方塊,選擇相應的筆記本,並點選“確定”,筆記收藏成功,筆記收藏後為共享狀態,並且可以在本地“編輯”和“儲存”。
4.回收站
4.1恢復筆記:
點選“回收站”,會在筆記欄列出已經刪除的 “筆記”,點選想要恢復的 “筆記”,點選標題右側的“恢復”按鈕,會彈出提示框,提示想要恢復到哪個“筆記本”,選擇筆記本,點選回覆,即可恢復。
4.2徹底刪除筆記:
點選“回收站”,會在筆記欄列出已經刪除的 “筆記”,點選想要徹底刪除的 “筆記”,點選標題右側的“垃圾箱”按鈕,會彈出提示框,提示確定要徹底刪除筆記嗎,點選是,筆記徹底刪除。