但是,web服務器集群并不像文件服務器集群那么簡單,因為web服務器的程序使用的數據是共享的,具有一致性和實時性的要求。
如果獲取數據時都從數據庫讀取數據,可以保證數據的一致性,但數據量大時,影響性能而又不能保證實時性,這就是我們后面說到的使用緩存技術解決這個問題。
Web服務器類型: iis ,阿帕奇 tomcat 都是出名的輕量級web服務器
數據庫服務器集群
通常大型的關系型數據庫 oracle ,mysql , sqlserver 都已經提供了集群的功能,但是,由于磁盤讀寫速度的限制,難以勝任高并發實時性的要求,我們建議使用帶有集群功能的內存數據庫。
Mongodb內存數據庫:
Mongodb是一個開源的nosql 內存數據庫,基于json格式的文檔存儲,數據對象通過json的序列化與反序列化傳輸。在服務器內存足夠大時,把所有的數據裝載到內存中,便于快速訪問;當內存不夠大時,把不常使用的數據持久化到磁盤文件;{zx1}版本的mongodb 3.0 已經提供了服務器集群的功能,并且引入了hadoop大數據的mapreduce并行運算模式,這讓海量數據全部存儲與多臺服務器的內存上提供很好的解決方案。
現在服務器內存的硬件價格已經十分低廉,配置128G內存的服務器已經很普遍,但是我們還是建議一臺服務器存儲數據量不要超過1億條記錄,便于提高并行計算的效率。
在硬件充裕的情況下,mongodb集群建議采用多副節點的集群模式,不僅提高訪問性能,也保證了數據安全完整性能。
Gemfire內存數據庫
Gemfire是很多年前就已經商業化了的nosql內存數據庫,經過了多家大型機構的使用考驗,更幸運的是,在2015年4月發布其開源版本Geode,可能在不久的將來得到更廣泛的使用。
除了開源nosql內存數據庫,國內外的巨頭都已經在研究自己的內存數據庫,比如oracle, ibm , 阿里等等,nosql內存數據庫大有代替關系型數據庫的趨勢。