閱讀692 返回首頁    go 技術社區[雲棲]


互聯網大型應用軟件架構設想與推薦

               見過很多成長中的企業,隨著業務的擴大,數據流的增加,自家的軟件越來越受到成長性的頸瓶,於是乎高薪招來大牛,然後就急急忙忙的亂設計架構做試驗,最後搞的頭痛醫頭,腳痛醫腳的局麵。

              這樣的企業國內太多,多的我都不好意思說了。

              無論什麼軟件受到成長性的頸瓶,除了曆史架構原因,沒有別的因素了。

              目前解決數據流頸瓶的技術方案有很多種,我在這裏僅僅做一個設想,因為不想為那種所謂的成熟方案所吸引。

              在我看來,最大的數據流軟件就是google了。

              據說,google為了解決此問題,采用的硬件模塊化,數據內存化(含虛擬內存技術),多進程多線程化,服務器集群化,電力集群自動化等等係列的智能處理。

              我想,如果你的軟件有一天像google那麼成功,那肯定會有類似的處理辦法。

              我的設想是,如果你的軟件在未來的五年業務增長能承受百萬級並發就可以的化,那麼你要做的就不是百萬級並發的事,你做的事未來20年的業務增長的可控空間。

              這是一個什麼樣的架構設想呢(作為技術與業務並進的科技公司而言)?
              首先要考慮的是,虛擬技術,集群技術,分布式技術,其實這些代價比起購買昂貴的服務器和高速帶寬強很多。

              虛擬技術其實就是將物理資源轉變為邏輯上可以管理的資源,以打破物理結構之間的壁壘,想像下,任何pc都可以將計算機資源用到極致,這是一個什麼概念。

              集群技術就是將虛擬技術和物理機器用到極致並突破大數據流帶來的任意高並發增長,並做好網絡和數據的災備。

              分布式技術就是突破服務器資源和pc端資源的限製,同樣是解決性能問題。

               目前這些技術已很成熟,現在大型企業幾乎都在用或嚐試這些技術解決方案。

               其次,我們要考慮是網絡傳輸和計算機語言本身的問題。

                盡管目前帶寬已很大提高,但對於一個長期發展的企業和軟件來說,這是不得不考慮的事情,顯然,移動端還是pc很多前端技術有了很成熟的方案,比如開源框架jquery及類jquery的數不勝數;這些框架在一定程度上解決了網絡傳輸響應問題,其二我們要考慮緩存機製,像這裏的開源框架也是數不勝數,如ehcache及類ehcache

               計算機語言的選擇也是個問題,現在全球都在流行使用java,的確java是為網絡而生的,有著天然的優勢;但為了長遠打算,除了應用業務層外使用java,  底層或中間件或應用層最好還是php+java+c+erlang這種組合方式進行,這是最有效的性能和速度及安全上的解決方案。

               服務器應用容器,有很多選擇,推薦使用ngnix或was

               服務器操作係統自然不用說,linux!

               這篇文章純屬經驗概述篇,今後我將陸續的推出針對性的解決方案文章。

                                                                                                                                      深圳-linux內核- 羅     2014/0711

                 






最後更新:2017-04-03 05:39:09

  上一篇:go C++中類成員函數指針詳解
  下一篇:go Javac源碼簡單分析之解析和填充符號表