不少公司會選擇「NoSQL」或「Not Only SQL」新型數據庫來支撐在線和運營程序服務,數據庫
那麼咱們要如何選擇高性能NoSQL數據庫?後端
1. 爲數據庫定義目標網絡
NoSQL數據庫的目標多是爲移動設備上的數千名用戶提供個性化數字體驗,爲後端支付處理應用程序存儲數據,管理有必定時間生活的短暫數據,或將持久數據存儲爲系統記錄。你甚至能夠在特定方案的同一數據管道中涉及多種類型的數據庫。架構
不管用例如何,在數據管道中定義NoSQL數據庫的特定功能很是重要,包括如何收集,提取和提供數據以進行分析。分佈式
2. 肯定吞吐量和延遲要求微服務
一般,這須要你的應用程序的響應時間<100毫秒。不然,它將被視爲緩慢,你可能會失去用戶的興趣。可是,一些應用程序 - 例如遊戲,通訊和金融交易系統 - 要求其數據庫的響應時間低至13毫秒。性能
除延遲外,咱們還須要肯定吞吐量要求。例如,數據庫能夠處理數千個同步數據流,延遲低至50毫秒或更長?生辰八字起名字字體
瞭解將對數據庫提出的要求對於確保用戶體驗的質量很是重要。.net
3. 爲正確的做業選擇正確的數據庫遊戲
一般,開發人員選擇NoSQL數據庫是由於它們須要半結構化或非結構化數據,具備靈活的模式,簡單的查詢模式,高速事務,大量數據以及經過分佈式計算和存儲的快速且廉價的可擴展性。你能夠經過CAP定理進一步縮小選擇範圍,CAP定義定義以下:
一致性:每次讀取都會收到最近的寫入或錯誤。
可用性:每一個請求都會收到(非錯誤)響應 - 不保證它包含最近的寫入。
分區容差:儘管節點之間的網絡丟棄(或延遲)任意數量的消息,系統仍繼續運行。
根據CAP定理,你能夠優先考慮CA,AP或CP特徵。這有助於肯定哪一個數據庫最適合你的應用程序。
4. 選擇託管服務提供商和本身動手(DIY)
託管服務解決方案使用經驗豐富的資源處理數據庫的平常管理。這使你本身的資源可以專一於應用程序所需的創新和效率。若是朝這個方向發展,請評估提供數據庫即服務選項的第三方選項,並選擇可以在保證正常運行時間的同時處理吞吐量和延遲要求的提供商。
固然,外包可能並不老是可選的,在這種狀況下,應該考慮哪些數據庫提供商提供的軟件版本支持大規模配置,調度和管理容器。請務必檢查你最指望的功能,例如可伸縮性,主動 - 主動部署,吞吐量和延遲 - 並在概念驗證試驗期間對其進行驗證。
5. 肯定部署模式
理想狀況下,你須要一個數據庫提供程序,它容許在選擇的任何環境(不管是公共仍是私有)中運行數據庫,並徹底控制你的數據和配置。數據庫軟件也應該做爲Docker鏡像提供,這將容許企業開發人員在基於Docker的微服務架構中使用它。
若是使用私有平臺即服務(PaaS),請確保你的數據庫提供商支持私有PaaS環境中的無縫擴展和輕鬆高可用性。
若是選擇託管服務提供商,請確認它們支持跨多雲提供商的羣集部署。