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

news/2024/4/19 0:08:06

国庆长假,老外在热烈的讨论这个话题,

原文地址: 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



https://dhexx.cn/news/show-3788608.html

相关文章

如何入门学习python爬虫技术?

作为一门历史悠久的语言,Python比R更具有通用性,比C更灵活,可以说Python是一个很全面的语言,尤其是在数据科学、机器学习和AI方面,表现很出色。如果想自学,怎么学习python爬虫技术? 一、基础知识的掌握 什…

【链块技术48期】区块链技术基础语言(三十):Go语言常用工具包(下)

原文链接:区块链技术基础语言(三十):Go语言常用工具包(下) 一、JSON处理 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,方便人们阅读和编写,也方便程序地解析和生…

【链块技术49期】区块链技术基础语言(三十一):Go语言网络编程(上)

原文链接:区块链技术基础语言(三十一):Go语言网络编程(上) 一、网络概述 1.1 网络协议 网络协议就是为网络数据交换而制定的规则、约定与标准。 1.2 分层模型 为了降低网络设计的复杂性,绝大多…

Python软件开发培训出来能做什么?

近年来,Python语言可以说是快速抢占了人们的眼球。它以其代码简短、可读性强、适合迅速开发而广泛应用等优点让许多学员想要学习,很多人会问,学习python软件开发能做什么?那么,下面就由千锋为大家介绍一下,…

IBM研发全球最快石墨烯晶体管 直奔26GHz

IBM宣布,他们已经成功将纳米级石墨烯场效应晶体管的频率提高到GHz级别,这也是这种非硅电子材料迄今为止所能达到的最高频率。 该成就是美国国防部高级研究计划署(DARPA)赞助的碳电子射频应用(CERA)项目取得的里程碑式进步,也是开发下一代通信…

【链块技术50期】区块链技术基础语言(三十二):Go语言网络编程(下)

原文链接:区块链技术基础语言(三十二):Go语言网络编程(下) 本文紧接上文所述,讲解socket编程和HTTP编程。 一、socket编程 在上一节我们介绍了网络体系的五层模型,介绍了每层模型所…

浅谈大数据、数据分析、数据挖掘的区别!

大数据是互联网的海量数据挖掘,而数据挖掘更多是针对内部企业行业小众化的数据挖掘,数据分析就是进行做出针对性的分析和诊断,大数据需要分析的是趋势和发展,数据挖掘主要发现的是问题和诊断。具体分析如下: 1、大数据…

NAND Flash将难以摆脱被淘汰的命运

NAND Flash的普及给发展缓慢的存储市场注入了新的动力,虽然相比较机械硬盘(HDD)的价格仍然较高,但凭借着出色的性能表现,全闪存阵列已经稳稳的占据了存储高端市场。目前,很多公司的关键性业务上均采用了高端的全闪存存储。 NAND F…

【链块观点01期】当区块链的风刮到教育行业,哪些变革是注定要发生的?

原文链接:【区块链应用案例】当区块链的风刮到教育行业,哪些变革是注定要发生的? 一 教育是国之大计。古往今来,教育都在人类生活中占有着极其重要的位置。教育与社会的进步、文明的发展程度紧密相关。中国正在努力建设和谐社会&…

想要学好云计算,这四个方法要掌握!

近年来,云计算市场火爆,越来越多的企业将业务迁移到云计算上,云计算人才也成为企业招聘的对象。有些人看到其可观的就业前景,纷纷想转行加入到云计算行业。事实上,想要学好云计算,需要有一定的学习方法。接…