這個問題是貫穿整個設計方法的各種事情,你會在你的web應用程序中做這樣的事情,如果你在推特上跟隨數百萬人並且當你檢查最新的20條推文讓你在最短的時間內找到它,並減少對資源的負擔。這是一個關於整個堆棧的開放式設計問題。在twitter上查找來自百萬人的20條最新推文
我的回答不完整的(因爲我是不能完全回答這個問題),因爲我們正在談論數百萬用戶的
那麼我們就必須進行分片數據庫,根據用戶的地理位置,這答案沒有被接受,因爲在twitter中你確實不跟隨同一地點的人。 有什麼更好的方法可以實現?
由於大多數最新的20條推文是最重要的,那麼每個用戶都會維護一個緩存(鏈接列表),該緩存根據他們到達的時間擁有最新的推文。 這也沒有被接受。
一般來說,我在這些類型的設計問題上很薄弱,想知道如何去解決它們?
只是如此你知道。我認爲緩存是實現這一目標的最佳途徑之一。由於您已經關注了數百萬人,因此爲單個用戶緩存的額外數據是微不足道的。而且緩存的速度更快,因爲當有人發推文時,推文只能在每個人的緩存中容納一次,而不是每次請求最新的20條推文。 – 2012-08-20 10:46:55