`

为什么大多数大型网站不是用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

Somedevelop 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


分享到:
评论

相关推荐

    为什么大多数大型网站不是用Java写的.rar

    为什么大多数大型网站不是用Java写的.rar

    大型网站技术架构:核心原理与案例分析

    Java 的大多数应用都是用在Web上的,现在只要稍微大型一点的Web应用,都一定是一个分布式系统,那么一个分布式系统用到了哪些技术?一个大型网站是如何从 一个小型网站成长起来的?如何保证你的网站安全?分布式系统...

    Java访问c#开发的webservice

    在大型项目开发中,避免不了分布式的应用,分布式应用的业务逻辑一般分别部署到若干个服务器上,供各个客户端程序调用。而部署到服务器上的业务逻辑一般用webservice实现。开发webservice可以使用java、也可以使用c#...

    免费开源!!一个 Java 序列化/反序列化库,用于将 Java 对象转换为 JSON 并返回

    Gson 是一个 Java 库,可用于将 Java 对象转换为其 JSON 表示形式。它还可用于将 JSON 字符串转换为等效的 Java 对象。Gson 可以处理任意 Java 对象,包括您没有源代码的现有对象。 有一些开源项目可以将 Java 对象...

    淘天下电商网站源码【java版】

    淘天下网站源码商城,java版本,符合国内大多数电商网站需求,包含数据库基本数据和数据结构,可以作为大型电商网站参考

    Java 简介,详细教程

    Oracle开发的关系数据库产品因性能卓越而闻名,许多大型网站也选用了Oracle系统,是世界最好的数据库产品。 三、Java平台体系 JavaSE(J2SE)(Platform Standard Edition,平台标准版) JavaEE(J2EE)(Platform ...

    【文献综述】基于JAVA的俄罗斯方块游戏设计与实现.pdf

    实现跨平 台性的方法是大多数编译器在进行 Java 语言程序的编码时候会生成一个用字节码 (Bytecode)写成的"半成品" ,这个"半成品"会在 Java 虚拟机[7](解释层)的帮助下运 行,虚拟机会把它转换成当前所处硬件...

    sourceafis-java

    它可以比较两个指纹1:1或搜索大型数据库1:N以匹配指纹。它在输入上获取指纹图像并在输出上产生相似性得分。然后将相似度得分与可定制的匹配阈值进行比较。 SourceAFIS算法在纯Java和纯.NET中有两个几乎相同的开源...

    大型主机操作系统.ppt

    大型主机操作系统 z/OS 由OS/390更新演变而来的,具有极高的可升级性和高可靠性的计算机操作系统.它是基于64位z结构的操作系统. 以运行紧急任务而具有更高可靠性而著称的. 支持Web和Java应用. • z/VM 这种虚拟机使...

    JAVA 实现URL重写工具 UrlRewriter Java v2.0 RC1-urlrewriterjava

    2. **增强用户体验**:虽然大多数用户不会过多关注网站的具体URL,但对于大型网站而言,提高URL的可读性仍然是必要的,这不仅能帮助用户更好地理解网站结构,还能提升整体的用户体验。 3. **隐藏技术细节**:通过URL...

    培训平台java源码-java:TensorFlow的Java绑定

    培训平台java源码Java 版 TensorFlow 欢迎来到 TensorFlow 的 Java 世界! TensorFlow 可以在任何 JVM 上运行,用于构建、训练和运行机器学习模型。 它带有一系列实用程序和框架,可帮助完成在该领域工作的数据科学...

    java解析xml及4种常用解析比较

    JDOM对于大多数Java/XML应用程序来说当然是有用的,并且大多数开发者发现API比DOM容易理解得多。JDOM还包括对程序行为的相当广泛检查以防止用户做任何在XML中无意义的事。然而,它仍需要您充分理解XML以便做一些超出...

    java Web系统架构综述

    Spring框架的出现为大型应用开发提供了一种替代方案,解决了EJB中出现的大多数问题。Spring使用JavaBean来完成EJB的工作,并提供了诸如控制反转(Inversion of Control,Ioc)和面向切面(Aspect Oriented ...

    基于JAVA的校园商铺平台的设计与实现.docx

    基于JAVA的校园商铺平台的设计与实现 基于JAVA的校园商铺平台的设计与实现全文共30页,当前为第1页。基于JAVA的校园商铺平台的设计与实现全文共30页,当前为第1页。基于JAVA的校园商铺平台的设计与实现 基于JAVA的...

    java二手书交易源码-growth-paths-java-developer:成长路径-java-developer

    java二手书交易源码目录 去做 每章的基本原理 将此页面呈现给 Java 公会 人事经理 目录 PDF op 门户网站 zetten 思维导图 maken van deze 页面 本文件的目标 通过以下方式帮助 Java 开发人员成长: 明确我们期望开发...

    基于Spring的Java平台程序架构研究.pdf

    基于Spring的依赖注入和切面编程思想,研究了Java平台下的系统架构,针对不同应用系统的特点,提取出数据 ...具,针对中大型B/S结构的应用系统进行分析,从大多数共性 需求出发,给出了高效的和可扩展的解决方案。

    sqlcompose:Java Sql 生成器库

    sqlcompose 的目标不是让开发人员对 SQL 隐藏。 我们相信 SQL 是好的。 SQL 的唯一问题是当您必须支持多个数据库系统时。 因为它们中的大多数支持略有不同的 SQL 方言。 这是 sqlcompose 的主要功能之一。 它抽象了...

    26章全Java主流分布式解决方案多场景设计与实战

    3.你知道为什么大多数业务场景都选择了最终一致性实现方案么? 4.你了解Seata框架为什么当下如此受欢迎么? 3、分布式ID 1.这么多种分布式ID生成方式,应该选择哪种呢? 2.雪花算法底层实现原理是什么? 4、分库...

    powermock-legacy:PowerMock-Legacy 是 PowerMock for Java 1.4 的复刻版

    介绍即使在 2011 年,仍有许多遗留项目需要 Java 1.4(特别是在大型保守企业中),而且这些项目中的大多数在设计时都没有考虑到可测试性,因此它们倾向于使用和滥用静态(有时是最终)方法。 这些方法不容易用 ...

    advanced_programming_with_javaserver_pages.zip

    JSP的语法基本上和Java是相同的,有Java基础的读者可以很快学会如何使用JSP,而没有Java语言基础的读者,只要循序渐进地阅读本书,一样可以成为JSP编程的高手。本书主要分为两个部分:第一部分为JSP基础部分。通过...

Global site tag (gtag.js) - Google Analytics