網站後端演算法的相關書籍有哪些值得推薦?

比如發布/訂閱機制:用戶A發布了一條消息,要讓用戶B在數秒內自動收到這條消息.

當然,想出處理這種問題的演算法很簡單,但我擔憂的是,當用戶數成堆上漲後,怎麼做才不會導致伺服器崩潰或者拖慢載入速度?我對此還是一無所知,但網上搜了半天根本找不到講後端演算法的書籍,所以還請各位大神推薦 :)


@陳碩的《Linux多線程服務端編程 (豆瓣)》。


amazon提供的一堆雲服務應該能很大程度上解決你的問題,所以:

1. 用它的服務得了,多專註於產品設計和界面吧

2. 看它發的關於以上服務的文章,雖然老點,原理一樣,你要自己做的話可以作為入門


路線是這樣的。首先你要把你的資料庫和伺服器程序都設計成scalable的。這是什麼意思呢,就是說,在一台伺服器上你可以serve 一萬個人,那麼給你N台伺服器你就應該在相同的性能下面serve 逼近於常數C * N萬個人。只要你做到這樣,以後用戶上去了,你只要砸錢就可以了,根本不用碰程序。一開始用戶一萬,你用一台機器。後面猛漲到了一億用戶,你只需要一萬台機器的錢就可以了。

很多大公司的後台就是這麼搞出來的,而且這其實是一個相當高的要求。為了達到這個標準,你需要花大量的時間學習資料庫、通信和分散式演算法的設計這三個領域內的知識。這不是一本書或者一個演算法就可以搞定的,你當然搜不到了。

好了,準備一個五年計劃吧。


搜"pub sub",然後把相關的現成的技術都試驗下,模擬下自己想像出來的情景,看看效果怎樣,就可以對這個技術有個大致的了解了。如果所有現成的都滿足不了,再考慮自製。

對其他問題都能用同樣的學習方式,逐漸積累經驗。如果自己不想學習,想一下就知道答案,那就請別人來做。


《淘寶技術這十年》


1. 《大型網站系統與Java中間件實踐》,講述如何構建scalable的數據層、服務層、pub/sub中間件。順便也介紹了其他支持大型網站系統的底層系統和中間件,如NoSQL,DFS,搜索引擎等。

2. 《大規模web服務開發技術》,入門書。


http://highscalability.com/ is mainly talking about this topic, And the book I recommend is "The High Scalability Store". But all these are just principles, focus on problems rather than puzzles, Facebook, google are iteratively developed, the first version doesn"t consider high scalability problem but focus more on features and user experience.


演算法是一部分,另一部分,是各種工程手段,很多東西都不太拿得上檯面,所以市面上的幾本書大都感覺不夠到位。

俗話說無論吃相多難看,解決問題才是根本,尤其是在時間如生命的互聯網行業。

要我建議的話,找一家業務量到位的公司進去技術職位從頭干起就是了,雖然聽起來慢一點,但確實是眼下唯一的辦法。


你的問題都不屬於演算法,應該屬於架構問題。感覺這個問題問地很外行,如果你多深入一點WEB基礎知識,就能解決。


推薦閱讀:

既然所有語言都是圖靈完備的,為什麼適用的領域不一樣?
web qq是用什麼技術接收實時消息的?
複製(剪切板)到底是複製了什麼?
如何觀測SSD盤內部狀態?

TAG:演算法 | 後端技術 | 伺服器 | 網站運營 | 演算法設計 |