綜上所述,最終我把方向放到了TokyoTyrant,Mongodb上,之所以選擇了這兩個工具,主要基于下面因素:
1.海量數據的解決方案應該可以跑在LINUX和WINDOW平臺上。當然有人會說Mongodb完全可以跑這兩個平臺,那還為什么要引入TokyoTyrant呢?其實這里有一些產品的特殊情況要考慮,比如我們的用戶中絕大多數對于數據的讀寫比在 4:1,即5條SQL訪問中有4條是SELECT操作,1條是CUD操作,這就造成了讀寫比例的失衡。雖然Mongodb在讀寫性能上非常優異和穩定,但在并發讀上相對于TokyoTyrant+cabinet還是有一些差距(注:更多內容參見該鏈接,然后這只限于在我們產品中壓力測試環境下的結果,不具備普遍性,所以希望大家具體問題具體分析)
2.考慮到有些用戶公司是有相應技術儲備的,兩種方案也便于用戶公司進行的技術選型(當然因為采用接口方式,用戶完全可以引入其它第三方的NOSQL工具來實現)。
好了,說了這么多,開始今天的正文吧。
前面說過,該方案使用了接口方式,這里就先看一下相應的接口聲明:
可以看到,目前在企業版中,對主題表(dnt_topics),用戶表(dnt_users),在線表(dnt_online)以及帖子表(dnt_posts)進行了NOSQL數據支持,所以定義了如下的幾個接口(圖中):
新聞熱點
疑難解答