為什麼大多數大型網站不是用Java寫的
國慶長假,老外在熱烈的討論這個話題,
原文地址: http://natishalom.typepad.com/nati_shaloms_blog/2007/10/why-most-scalab.html
我摘錄部分觀點如下:
Most of these sites are using LAMP as the core runtime stack
Some develop their own file system (Google, GFS)
Some are using caching to solve the database bottleneck (memcached and the like)
--
introducing similar solutions for addressing the scalability challenges: 在解決伸縮性方面的嘗試:
On the Data Tier we see the following:
1. Adding a caching layer to take advantage of memory resources
availability and reduce I/O overhead
2. Moving from a database-centric approach to partitioning, aka shards
注:shards是google貢獻給hibernate的一個專案,他是hibernate的一個擴充套件,可以
透明的實現資料的分佈儲存。至於如何分佈儲存由你自己定義策略,例如典型的
RoundRobinShardSelectionStrategy
On the Business Logic Tier:
3. Adding parallelization semantics to the application tier (e.g.,
MapReduce)
注:MapReduce是Google開發的C++程式設計工具,用於大規模資料集(大於1TB)的並行運算。MapReduce通過把對資料集的大規模操作分發給網路上的每個節點實現可靠性;每個節點會週期性的把完成的工作和狀態的更新報告回來。MapReduce會生成大量的臨時檔案,為了提高效率,它利用Google檔案系統來管理和訪問這些檔案。
4. Moving to scale-out application models to achieve linear scalability
注:
scaling:the ability of an application to address growth in throughput,
usage, and capacity
有兩種策略:scale out 和 scale up
scale up vs scale out 的區別在於:
1 Reliance on hardware versus reliance on software
2 Equation with "first-class" hardware versus "commodity" hardware
3 Massive versus incremental capacity increases
4 Centralized versus partitioned application architectures
簡單的說就是一個靠提升單個硬體的配置,另一個靠用低端配置實現叢集
5. Moving away from the classic two-phase commit and XA for transaction
processing (See: Lessons from Pat Helland: Life Beyond Distributed
Transactions)
注: 不使用傳統的分散式事務處理,例如EJB的事務,使用新的基於space的中介軟體平臺 Space Based Architecture (SBA) and GigaSpaces XAP
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1814706
相關文章
- 為什麼現在很多的大型網站都是用php開發?用java開發的的很少!網站PHPJava
- 什麼是大型網站運維網站運維
- [轉]為什麼大型網站前端使用 PHP 後臺邏輯用 Java?網站前端PHPJava
- 為什麼用CDN給你網站加速?網站
- 什麼是網路爬蟲?為什麼用Python寫爬蟲?爬蟲Python
- 網站為什麼會存在漏洞網站
- 居中為什麼用transform,而不是margin top/leftORM
- 為什麼我的 WordPress 網站被封了?網站
- java大型網站都有哪些案例呢?Java網站
- 為什麼 SQLite 用 C 編寫?SQLite
- 網站建設之企業為什麼要做網站?網站
- php編寫大型網站問題集 (轉)PHP網站
- HTTPS被廣泛應用於網站,網站為什麼需要SSL證書?HTTP網站
- 為什麼ChatGPT採用SSE協議而不是Websocket?ChatGPT協議Web
- 為什麼網站訪問速度很慢網站
- 網站為什麼會打不開網站
- 為什麼你的網站SEO做不上去?網站
- 網際網路公司為什麼普遍996而不是666?996
- 為什麼我們越來越不喜歡用網站?網站
- 為什麼網站使用CDN加速這麼流行?網站
- 網站為什麼要做“等保”?怎麼做?網站
- 為什麼大多數企業選擇用SaaS模式做SRM系統?模式
- 為什麼想做副業???還不是因為窮
- 網站為什麼需要使用CDN加速?網站
- 為什麼說CDN有利於網站網站
- 公司網站為什麼亂碼了呢網站
- 為什麼大多數銀行和金融機構服務使用Java? | AdevaJavadev
- 為什麼爬蟲語言選擇Python而不是Java?爬蟲PythonJava
- 為什麼大多數分析工作都以失敗告終
- 為什麼大多數公司最好避免使用微服務? -GreekDataGuy微服務
- 為什麼你寫的攔截器注入不了 Java bean?JavaBean
- 什麼是全網營銷型網站?全網營銷型網站有什麼應用優勢?網站
- 大型網站技術架構(二)--大型網站架構演化網站架構
- 大型網站技術架構(一)--大型網站架構演化網站架構
- 為什麼選擇PostgreSQL而不是MySQLMySql
- 我看《App 為什麼不是未來?》APP
- MySQL在大型網站的應用架構演變MySql網站應用架構
- 黑帽SEO:Google為什麼會遮蔽你的網站Go網站