Google+的构建使用了哪些技术?


1、Closure工具集


https://developers.google.com/closure/

Google刚开源了其内部使用的JavaScript开发工具: Closure Tools (直译是闭包工具集),目前仍躺在Google Labs里。

从项目主页的介绍可以看到,Closure Tools包含3个组件:
  1. Closure Compiler:这是个JavaScript优化器,可以将JavaScript编译成压缩的、高性能代码。它除了能移除无效代码,重写代码使其最小化且运行更快,还能检查语法、变量引用和类型,并对一些常见JavaScript错误提出警告。同时,它还提供了Closure Inspector(一个Firefox插件)用于调试编译后的代码。
  2. Closure Library:这是个广泛的、经过良好测试、模块化且跨浏览器的JavaScript库。在例子中可以看到,Google Docs就是用这个库写的。
  3. Closure Templates:这是一个为Java和JavaScript实现的模板系统,可在服务器和客户端使用相同的模板。值得一提的是,JavaScript模板会进行预编译处理,以提高其性能。此外,Gmail和Google Docs也是使用该模板系统。

2、Java Servlets

应该是自己定制的servlet 容器。
Google probably uses a custom Java servlet container, but the choice here doesn't matter that much. Most of the work will be spawned in parallel and performed on other servers implemented in C++, Java, or Python .

3、BigTable and Colossus/GFS

BigTable是一种压缩的、高性能的、高可扩展性的,基于Google文件系统(Google File SystemGFS)的数据存储系统,用于存储大规模结构化数据,适用于云计算。
BigTable
发展于2004年,现今已成为Google的应用程序。像是MapReduce就常通过BigTable来存储或更改数据,其他还有Google Reader、Google Maps、Google Book Search、"MySearch History"、 Google Earth、Blogger.com、Google Code hosting、Orkut、YouTube以及Gmail等。Google自行发展出特别的巨型数据库的原因,自然是性能的问题。
BigTable
不是传统的关系型数据库,不支持JOIN这样的SQL语法,BigTable更像今日的NoSQL的Table-oriented,优势在于扩展性和性能。BigTable的Table数据结构包括row key、col key和timestamp,其中row key用于存储倒转的URL,例如www.google.com必须改成com.google.www。BigTable使用大量的Table,在Table之下还有Tablet。每一个Tablets大概有 100-200MB,每台机器有100个左右的Tablets。所谓的Table是属于immutable 的SSTables,也就是存储方式不可修改。另外Table还必须进行压缩,其压缩又分成table的压缩或系统的压缩。客户端有一指向META0的Tablets的指针,METAO tablets 保储所有的META1的tablets的数据记录。

4、Quik Turnaround


For Google+'s most innovative feature, video conferencing with Hangouts, GigaOM has agood article on that stack, which is based onAnnouncing Google+ Hangouts, written by Tech Lead Justin Uberti. Unlike Skype, which runs on a cost effective P2P model, Hangouts is completely hosted by Google. This must cost a staggering amount of money. You are on your own here. Nobody can replace the bandwidth being donated by the Google fairy.

That's Google in a box. Then again, an ex-Googler thinksyou can do betterusing MessagePack, JSON, Hadoop, jQuery, and MongoDB. If you can do better for a world wide base of a billion users is a completely different question.



你可能感兴趣的:(Google+的构建使用了哪些技术?)