大型高性能网站的十项规则

2014-08-21  来源:本站原创  分类:编程  人气:5 

总结了国内网络和游戏公司运行后端服务器过程中所得到的实践经验和教训。这些规则适用于日访问量从一万到上百万的大型系统。

在我们公司ChinaNetCloud,见过多种不同类型的网站和系统,有好也有差。其中有些系统拥有良好的服务器/网络架构,并且进行了合理的调整和监控 ;然而一般的系统都会有安全和性能上的问题,不能良好运行,也无法变得更流行。

在中国,开源的LAMP栈是最流行的网络架构,它使用PHP开发,运行在Apache服务器上,以MySQL作为数据库,所有这些都运行在Linux上。它是个可靠的平台,运行良好,是现在全球最流行的Internet系统架构。然而,我们很难对其规模进行正确的扩展并保持安全性,因为每个应用层都有其自身的问题、缺陷和最佳实践。我们的工作就是帮助企业用最低的操作成本来创建并运行高性能的、可伸缩的、安全的系统,因此对于这类问题我们有很丰富的经验。

当前的实际情况是,很多网站都是由开发人员快速而廉价地创建,通常没有任何IT人员或者经理,只是由程序员来管理系统。造成的结果是,虽然花费很低的成本网站就可以开始运行,但是当拥有大量用户、需要扩展规模的时候,通常就会面临真正的问题。毕竟,中国拥有三亿八千万的Internet用户,如果其中的0.01%访问这个站点,就很容易引发25万~50万的页面访问量。这些问题在各个级别上都会产生,下面总结的规则是对最一般的问题进行概述,并且说明为什么这些规则如此重要,以及最好采用什么方法来修正它们。遵循这些建议的站点会提高它的可伸缩性、安全性以及操作上的稳定性。

使用合适的会话管理

第一个想到的扩展系统的方法就是添加更多硬件。例如,使用两台服务器而不是一台。这听着合理,但会产生潜在问题:会话管理。这对Java程序来说是很严重的问题,在PHP中也会产生可延展性问题,对于数据库的负载尤其如此。

会话被定义为单独的最终用户登录或者连接一段时间,其中通常会包含多个TCP/IP的HTTP连接、几个Web页面,通常还包括几十个甚至上百个页面元素,如框架、菜单、Ajax更新等。所有这些HTTP请求都需要知道用户是谁,才能满足安全的要求,并向用户传送适当的内容,因为这些都是会话的组成部分。通常每个会话都会包括相互关联的会话数据,如用户名、用户ID、历史、购物车、统计资料等等信息。

问题在于,在有两台Web服务器和多个HTTP连接的情况下,用户流量会在两台服务器之间分配和移动,服务器很难知道用户是谁,并对所有数据进行跟踪,因为每个页面或者页面的组成部分都可能来自不同的服务器。在PHP中,通常是这样解决的,在第一次连接或登录的时候就创建一个会话ID并将其放在Cookie中,然后这个Cookie会和每个HTTP请求一起发送。

这样做带来一个问题,接下来每段PHP脚本都需要基于ID来查找会话数据。由于PHP无法在执行过程之间保持状态(这与Java不同),这个会话数据需要存储在某个地方,通常是在数据库中。但是,如果复杂的页面需要在每个页面载入过程中对其进行十次查找(这是经常要做的),那就意味着每个页面都要执行10次SQL查询,这会导致数据库上很大的负载。

在前面所举的中国Internet用户0.01%的例子中,可能很容易在每秒内仅仅为了管理会话就生成上百个查询。解决方法是一直使用位于Cookie中的会话ID,并且使用像Memcached之类的服务来缓存会话数据以获得高性能。

还要注意其中存在安全性的问题,因为黑客可以伪造另一个用户的会话ID,这是很容易找到或看到的,特别是在公用的Wi-Fi中。解决方法是对会话ID进行恰当的加密或者签名,并将其与时间区间、IP地址以及其他关键信息 像浏览器或者其他细节相绑定。在Internet上有很多不错的关于良好的会话管理的例子,你可以根据需要找到最适合的。

总是要考虑安全性

尽管编写像防止SQL注入和登录安全之类的代码涉及很多安全问题,但不幸的是,几乎没有人考虑过安全性,而那些考虑到的人也没有对其进行很好地理解。而本文要关注的是操作性的系统安全。对于这类安全,我们的焦点集中在三个安全领域:防火墙、运行的用户以及文件访问权限。

除了配置专门的硬件防火墙(像Cisco的ASA)之外,所有服务器都还应该运行像Iptables之类的防火墙,它会保护服务器免受其他威胁和攻击。这些威胁和攻击可能来自公共的Internet、其他服务器或本地服务器,也包括使用VPN或者SSH通道的开发和操作人员。我们仅对指定的IP开放确实需要的端口。Iptables可能会很复杂,但是有很多不错的模板,我们通常可以使用它们来帮助客户创建Iptables。例如,默认的RedHat或者CentOS防火墙的配置说明只有10行,显然并不实用。我们最佳实践的Iptables配置大概有5页,这其中包含了Linux所能提供的最高级的安全防范。

所有公用的服务,都应该运行在专门的用户下,如Apache。切记永远都不要使用Root用户运行,因为这会让任何闯入到Apache的用户接管整个服务器。如果Apache只是运行在Apache用户下或者运行在Nobody下,那么闯入Apache就不是一件容易的事情了。

Web服务器运行或者服务的文件(像.php和.html文件)对于Web服务器的用户应该是不可写的。这意味着Apache或者Nginx用户不应该拥有Web目录的写权限。有很多方法都可以做到这一点,而最简单的就是将这些文件为其他用户所有,然后让Apache/Nginx等用户归属于能够使用640权限读取文件的组中。这会防范几乎所有的黑客和针对页面的攻击。

此外,永远不要使用Ftp来上传文件,特别是在公用的Wi-Fi环境中,因为在其中黑客很容易盗取用户名和密码。取而代之的是使用Sftp会更加安全。另外,每个雇员都应该拥有自己的用户ID和随机密码。

使用标准的路径和安装配置

一个令人讨厌的部署问题是,开发者很少考虑他们的软件会被部署到生产Web服务器的什么位置,以及如何部署。我们看到过许多大型的系统将它们的PHP代码部署在/home/xiaofeng或者/web/code路径下。事实上,这两个路径都是非常不标准的,并且会带来操作和安全性的问题。当这些系统从开发环境转移到测试环境再到生产环境中时,因为每个安装配置都是非标准的,所以经常会出现问题,这时就需要开发者调整才能够正常工作。

你应该总是使用标准的安装包和二进制文件来安装像Apache之类的服务器。不要从源代码编译或者安装Tarball,因为这会导致长期稳定性和管理上的问题,另外在服务器上安装多个不同的版本也会造成混淆。

Web 站点应该总是在指定的平台和Linux发布的标准路径下进行测试和部署 ,像 RedHat 或者CentOS下的/var/www/html路径。这有助于对系统进行有效的权限管理、备份、配置、监控以及其他操作。

Web服务器的日志应该存放在/var/logs或者/var/logs/app_name下,而不应该位于主代码区域。这样做的原因不仅仅是因为这些标准的路径很重要,更应该关注的是,恰当地配置服务器会将/var配置为分离的文件系统。如果应用程序突然写入了大量日志并占用所有磁盘空间,由于我们做了以上的配置就不会导致系统崩溃,或者其他严重的问题。如果日志位于其他位置,就可能会产生问题。

总是使用日志

在Web系统中做多少日志都不为过。所有系统都应该将重要的数据写入到日志中,不管是它们自己的日志还是系统的Syslog。Cron的Job以及其他Shell脚本或者C语言的程序,对日志都有相应标准以及简单的函数。在Shell脚本中,只需要使用 Logger命令就可以实现日志的写入。在脚本启动/停止、重要的脚本执行以及实时数据产生的情况下都要执行写入日志操作。这样出现问题的时候,查看主要的系统日志就可以很容易地看到发生了什么。

大型系统经常会使用专门的工具如Local5来记录日志,并配置Syslog或者Syslog-ng来将其存放在单独的文件中,这样会更容易使用。需要注意的是,Syslog工具和Logger(以及任何Syslog调用)默认优先使用user.notice,如有必要,你可以对其进行调整。

一个好的系统会对程序进行配置,用来打开或者关闭日志,并可以选择在每模块或者功能的级别上应用不同级别的日志。这使得我们可以记录非常详细和强大的日志,用来分析和调试在生产操作中所发生的问题。

大型高性能网站的十项规则

大型高性能网站的十项规则

使用良好的数据库设计和SQL

在任何系统中,数据库通常是最大的性能瓶颈。而影响数据库性能的最大两个问题是数据库设计和SQL代码质量。很多系统都拥有良好的或者至少是可用的数据库设计,但由于没有经过适当的性能测试,SQL代码质量通常都会很差。这样的SQL代码在开发环境中可能运行很快,因为其中只有小数据集和最小的负载。但是当成千上万的用户同时读取数据库中上百万条记录的时候,它就很可能会崩溃。

不幸的是,这些问题一开始并不明显,直到系统增大、突然开始崩溃的时候才会显现出来。在增大的过程中,数据库系统看起来运行得很快(因为数据都位于内存中,而且很少有并发的查询),并且对用户的响应也很快,但实际上它的内部运行效率很低。这并不重要,我们关注的是在系统增大并遇到性能问题之前找到这些问题并加以解决。

关于这个问题有很多不错的书和站点进行了解析,其中的关键工具包括慢查询日志、INNODB状态系统,以及描述当前性能的MySQL统计信息。我们见到过很多系统每秒会读取500,000条数据,这是出现SQL问题的明显预兆,但公司往往对其一无所知直到服务器开始崩溃。

MySQL系统应该对所有数据使用INNODB存储引擎,因为INNODB与之前的MyISAM相比,运行得更快、更稳定,并且管理性能和备份工作也更加容易和快捷。在主配置文件中,INNODB应该被设置为默认的数据库引擎,并且系统应该不时地进行检查,看是否意外创建了MyISAM的表。

总要拥有良好的DB配置和备份

很多公司都没有良好的备份机制,也不知道如何恰当地完成这项工作。MySQL的Dump是不够的,因为最好的备份方法是使用LVM快照和INNODB对系统进行热备份,从而得到超快的速度和超高的可靠性。

另外,在将所有备份文件从服务器上转移出来之前要进行压缩和加密。另外还要确保拥有设计合理的MySQL配置。MySQL默认安装使用说明中只有5~10行关于配置的说明,这根本不适合开发使用。而我们提供给客户的最佳实践文档足足有10页那么长。文档中大约有100种有用的关于安全、性能和稳定性问题的设定,包括防止数据败坏,其中很多设定都是非常重要的。

使用读/写数据库分离

随着系统变得越来越庞大,特别是当它们拥有很差的SQL时,一台数据库服务器通常不足以处理负载。但是多个数据库意味着重复,除非你对数据进行了分离。更一般地,这意味着建立主/从副本系统,其中程序会对主库编写所有的Update、Insert和Delete变更语句,而所有Select的数据都读取自从数据库(或者多个从数据库)。

尽管概念上很简单,但是想要合理、精确地实现并不容易,这可能需要大量的代码工作。因此,即便在开始时使用同一台数据库服务器,也要尽早计划在PHP中使用分离的DB连接来进行读写操作。如果正确地完成该项工作,那么系统就可以扩展到2台、3台甚至12台服务器,并具备高可用性和稳定性。

使用类似Memcached之类的数据库缓存

即便有了好的数据库设计、SQL和读写分离,大型的系统仍然需要更快的性能,特别是对会话状态、好友列表以及BBS文字之类的东西。为了达到这个目的,我们可以使用像MemCached之类的数据缓存,它是一个高性能的简单数据缓存,已经被所有最大型的站点使用。但是要小心的是,不要100%依赖于一台Memcache服务器来提高性能,因为如果那台服务器崩溃了,就会破坏整个系统的性能。在这种情况下,应该使用2~3台Memcache服务器形成簇集架构,并且有选择地包含一个缓存准备过程,如果缓存服务器重启,需要重新载入数据,它能够快速地载入缓存。

构建测试和开发环境

很多公司只有开发者的桌面系统和他们的生产服务器。当系统变得越来越大、越来越复杂时,测试和管理代码就会导致严重的问题。最佳的实践是拥有两个测试系统,一个用于开发者的代码和功能的整合测试,另一个要与生产环境完全一致,从而更容易向生产环境平滑地过渡。幸运的是,现在使用云计算(或者私有云)可以轻松达到这一点。一个5~10台服务器的生产环境,可以很容易地在办公室或者IDC中使用一台服务器来复制,从而用于测试,而这台服务器我们可以用于多个客户的项目。

使用版本控制

最后,要对一切使用版本控制,包括测试和生产环境的部署。很多开发者都使用SVN或者类似的方法。在理想状态下,这些方法可以被用于所有代码、脚本、HTML、图片、配置、文档和测试。版本控制应该是代码转移到测试环境的必经之路,而不是简单地复制或者使用tar文件,因为这二者都是不可靠的。开发者应该将所有一切都签入,打上标签,然后将它们签出到测试系统。如果所有都没问题,那么它们会将该版本签出到生产环境。

总结

不管是在开发还是在运营过程中,创建可靠的高性能Web系统都有很多应该注意的事项。本文试图从可操作性和可靠性的角度讨论最重要的几点。当你构建和管理站点的时候,请不要忘了这些重要的问题。遵循这些规则会有助于确保系统长久、良好地运行。

作者简介:

Steve Mushero,ChinaNetCloud公司联合创始人、CEO兼CTO,拥有全球20多年的技术管理经验。曾担任土豆网、Intermind和Advanced Management Systems等多家企业CTO

译者简介:

侯伯薇,生于凤城,学在春城,做过国内和对日项目,现在大连某保险公司工作。乐于钻研技术,同时注重业务知识,勤于思考,愿意与人交流和分享。

(本文来自《程序员》杂志2010年4月刊)

相关文章
  • 大型高性能网站的十项规则 2014-08-21

    总结了国内网络和游戏公司运行后端服务器过程中所得到的实践经验和教训.这些规则适用于日访问量从一万到上百万的大型系统. 在我们公司ChinaNetCloud,见过多种不同类型的网站和系统,有好也有差.其中有些系统拥有良好的服务器/网络架构,并且进行了合理的调整和监控 :然而一般的系统都会有安全和性能上的问题,不能良好运行,也无法变得更流行. 在中国,开源的LAMP栈是最流行的网络架构,它使用PHP开发,运行在Apache服务器上,以MySQL作为数据库,所有这些都运行在Linux上.它是个可靠的平

  • 大型门户网站实现的十四大技术小结 2014-01-16

    参考下大型门户网站的技术,大家可以尽量的备份好服务器. 一.全文搜索 Lecene框架 <基于LUCENE的搜索引擎研究与实现> 二.缓存 实现页面级的URL缓存 <基于网络爬虫的有效URL缓存> 三.生成静态文件 比如说,一个首页可能会员由多个部分组成,每个模块生成一个静态文件,然后才用服务器端包含SSI技术进行组装,其默认的后缀是.shtml 四.静态文件分布存储于独立的服务器 CSS,JS,图片,文件等,用一个Apache服务器来处理请求 五.分布式开发 各服务器间的数据同步

  • 从12306说到大型电子商务网站项目的风险 2015-02-21

    11日,末学坐在通往上海的高铁上,接了一个电话.当时没有意识到这是一个采访电话. 12日,末学还坐在上证所的会议室里听各位领导专家的指导,就有电话不断的打来,告知我:你上头条了.此时才看见21世纪的报道.这个报道中将我的话进行编辑和切断并和别人的话插接在一起,容易引起误解. 末学赶紧注册了微博来申明,于是感受了一次"微博湍流",微博好强大. 昨夜,我辗转难眠,总觉得我应该说点什么,但是我应该说什么呢? 清华的校训是:自强不息,厚德载物. 作为一个清华人,我觉得应该尽量做好自己.宽容他人

  • 大型互联网网站架构心得之二:并.换和其它 2014-07-02

    上文回顾:<大型互联网网站架构心得之一:分> 上次说的"分"是一个比较大的原则也是一个比较高层的原则,这次我想说一下其它两个原则:并与换. 并 为什么要分?是因为我们希望通过分来提高系统的承载能力,那并又是并什么呢?我想了一下有几个方面可以并: 1. 合并用户请求,最基本的就是合并CSS/图片/脚本,还可以合并页面.不过合并就可能产生流量的浪费,需要有一个平衡点. 2. 合并接口的粒度,如果做分布式应用的话,我们可能不会直接访问数据库而是调用应用层提供的接口,由于是网络调用

  • 2013年9月刊:高性能网站架构 2014-10-03

    对互联网应用来说,性能不仅在很大程度上影响着用户的使用体验,在激烈的商业竞争中,还是攸关成败的决定性因素.构建高性能的互联网应用,涉及的技术十分广泛.从网络传输.服务器并发处理能力,到动态页面缓存.静态化处理,再到分布式缓存.数据库I/O优化.负载均衡--需要硬件.编程语言.数据库.Web服务器等组件紧密协调与配合.本期封面报道将由业界一线专家深入解析构建高性能互联网架构的秘诀,案例从创业公司到Alexa排名前十的核心网站,有的已耕耘十年,有的似乎发力于一夕之间.文章将分享这些专家在电子商务.新

  • 大型综合网站设计之美 2014-10-16

    前言 标题有点大的,确切点说这里讨论的是"大型综合网站的设计之美",区别于个人站点和一些SHOW类型的公司站点. 话题是前2天提到的关于站点设计的"美"的问题想到的.究竟对一个较大的综合性网站来说,如何的设计表现才算是得体.到位?如何才能算得上是一个"美"的站点? 本文分3个部分: 首先大致分析下各方面对设计(部门)的诉求是什么: 然后再回头看看,对于这些诉求,究竟什么才是"美",和我们原本想象的有没有差别: 最后,结合目前实

  • 完美企业网站的101项指标 2015-03-25

    我们有一套严格的标准,包含101项指标,用来评测企业网站是否完美,COMSHARP CMS 建立在这套标准之上,这101项指标分为7个类别,它们是: 内容 易于使用 设计 安全 性能 W3C标准 SEO 我们把内容放在第一位,而把很多企业过分侧重的设计放在第三位,事实上,在一个企业网站中,内容代表整个站点80%的价值,这是 COMSHARP CMS 反复强调的东西.如果将上面的7个方面用于人,我们不妨这样理解一个完美的人: 内容 (我有真才实学) 易于使用 (容易沟通与相处) 设计 (看上去也很

  • 高性能网站建设的14个原则 2015-03-17

    今日大致浏览了一下<High Performance Web Sites>.本书的中文版是<高性能网站建设指南>.本书另有对其中个别问题深入探究的进阶篇<Even Faster Web Sites>,中译<高性能网站建设进阶指南>.这本书中给出了14条网站性能提升的原则,每个原则独立成章,配有示例.这些原则大多数都非常实用,适合站点架构师.前端工程师.其中对于前端工程师的意义更大一些.这次看的是原版.我对于Web开发较缺乏实践经验,加之看得匆忙,因此可能存在

  • 高性能网站架构设计之缓存篇(5)- Redis 集群(上) 2015-05-04

    集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器节点,来降低单节点服务器的压力. 上一篇我们讲到了 Redis 的主从复制技术,当实现了多节点的 master-slave 后,我们也可以把它叫做集群,但我们今天要讲的集群主要是利用切片技术来组建的集群. 集群要实现的目的是要将不同的 key 分散放置到不同的 redis 节点,这里我们需要一个规则或

  • Windows 7正式版十项实用功能评测 2013-10-01

    Windows 7从最开始的预览版,就在不断的对系统进行改进,有些改进是很显而易见的,比如任务栏.而有些改进是很底层的,用户用眼睛是觉得看不到的,必须通过动手试用才能感受到,比如相应速度.而且Windows 7相比以往的系统,更加强调人性化和娱乐化,虽然我们需要一段时间才能适应Windows 7的某些改动,但是一旦你熟悉了它们,你会明显的感觉到原来系统可以这样简单呀! 从Windows 7在美国和中国两场发布会,我们也能明显的感觉到Windows 7对于消费者的定位就是一个最佳的家庭媒体娱乐中心

  • 设计高性能网站架构-LLMP 2014-03-06

    在网站架构设计中,大家一定对 LAMP (Linux Apache Mysql Php) 不陌生. LAMP确实是一个非常优秀的架构,秉承着自由,开放,高效,易用的设计理念. 但是,本文不打算探讨LAMP,网上有很多介绍LAMP的资料. 这里,想给大家介绍另一个在LAMP上衍生出来的,以提升性能为主要目的的开源网站架构. 1, 选择高性能 OS 首先,不难理解,任何一个server最底层的支撑还是OS,而OS的选择,主要包括 Unix, Windows server, Linux, BSD等等.

  • 大型互联网网站架构心得之一:分 2014-06-02

    我们知道,对于一个大型网站来说,可伸缩性是非常重要的,怎么样在纵向和横向有良好的可伸缩性,就需要在做架构设计的时候考虑到一个分的原则,我想在多个方面说一下怎么分: 首先是横向的分:1. 大的网站化解为多个小网站:当我们一个网站有多个功能的时候,可以考虑把这个网站拆分成几个小模块,每一个模块可以是一个网站,这样的话我们到时候就可以很灵活地去把这些网站部署到不同的服务器上. 2. 静态动态分离:静态文件和动态文件最好分离开成2个网站,我们知道静态网站和动态网站对服务器来说压力的侧重不同,前者可能重I

  • 高性能网站建设与架构 2013-05-14

    在之前我就想了,我是要把高性能网站建设与高性能网站架构分开写两篇文章呢,还是统一写成一篇,将写之际决想,这其实是一体的东西,然而却涉及到两个大的不同方向,详细的讲太啰嗦,我就写成一篇综合概述一下吧. 高性能网站建设 如果要我来定义,我觉得"高性能网站建设更多责任在于网站程序员.前端工程师",而两者中又以前端工程师更为专注.有一本书<High Performance Web Sites>,中文版叫<高性能网站建设指南>,本书另有对其中个别问题深入探究的进阶篇<

  • 不进化,则消亡--互联网时代企业管理的十项实践 2015-04-30

    这两年看到很多关于互联网思维.管理.模式方面的探讨,主流是专家学者的声音.这半年我们在十个方面做了很多实践,取得了一些小的成绩.应朋友之邀将其分享出来,希望能和更多的朋友探讨实践过程中的一些问题. 看到这篇文章的题目是<不进化,则消亡>,大家一定会问:为什么要进化?不进则亡有没有这么严重?该怎么进化? 首先我们看看为什么不进则亡.我基本上是怀着敬畏之心,在迷茫.探索.反思中度过的上一年度.近两年对我来说出现了太多挑战,包括既有知识结构新鲜名词,诸如大数据.互联网思维.精益创业.敏捷开发.OTT

  • 大型高性能ASP.NET系统架构设计 2012-12-24

    大型动态应用系统平台主要是针对于大流量.高并发网站建立的底层系统架构.大型网站的运行需要一个可靠.安全.可扩展.易维护的应用系统平台做为支撑,以保证网站应用的平稳运行. 大型动态应用系统又可分为几个子系统: Web前端系统.负载均衡系统.数据库集群系统.缓存系统.分布式存储系统.分布式服务器管理系统.代码分发系统 1.Web前端系统 为了达到不同应用的服务器共享.避免单点故障.集中管理.统一配置等目的,不以应用划分服 务器,而是将所有服务器做统一使用,每台服务器都可以对多个应用提供服务,当某些应

  • 高性能网站经验-读杨建的Blog有感 2013-12-10

    今天拜读了杨建的blog, 杨建开发的程序以高请求,高带宽为主,比如: 开发的一系列系统中的两个 并发达到54.15w req/s , connections 340.25w 高峰一小时近20亿实际http请求处理量. 所以整理了一些观点如下,喜欢吃快餐的请进.由于整理下面内容是跨十几篇文章的,就不一一给出链接了,需要看原文的简单Google一下即可找到. 一 .如何衡量Web Server的性能指标 总体来说同时在线connections和当时的每秒请求处理量是两个最重要的指标. 实验环境数据

  • 详解搜狐纵横门户网站江湖十年 2013-12-23

    [2008年2月25日,搜狐10岁了. 10年前,搜狐CEO张朝阳带着22万5千美金回到中国,开始了他的互联网之梦. 10年间,从建立门户网站.上市.一系列并购.不断推出新产品到实现品牌营销.成为2008奥运会第一个互联网赞助商,搜狐探索着. 10年后的今天,搜狐宣称:"自己已超过老对手新浪,成为中国最大的门户网站,实现了'让网络成为中国人民生活中不可缺少的一部分'的目标,并将更深入地改变人们的生活."] 资本保驾 搜狐是中国互联网第一个在风险投资基础上建立起来的商业网站,在中国鲜有人

  • 乔布斯获选财经网站SmartMoney十年人物 2014-01-21

    苹果CEO史蒂夫·乔布斯(Steve Jobs) 据国外媒体今日报道,苹果CEO史蒂夫·乔布斯(Steve Jobs)当选美国财经网站SmartMoney评选的十年人物. SmartMoney十年人物的投票历时一周,乔布斯最终以30%的得票率位居榜首.乔布斯能够当选SmartMoney十年人物,不仅是因为他让苹果起死回生,推动其市值增长700%多,还因为他彻底改变了人们购买和收听音乐的方式. 排名第二的是股神沃伦·巴菲特(Warren Buffett),其得票率为17%.巴菲特旗下的伯克希尔哈撒

  • 十项全能的java大神 2014-05-27

    1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正. 2.命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟 悉:appletviewer. HtmlConverter.jar. java.javac.javadoc.javap.javaw. native2ascii.serialver,如果这些命令你没有全部使用过,那么你 对java实际上还很不了解. 3.工具:必须至少熟练使用一种IDE的开发工具,例如My

  • 直面2015:关于互联网入口的十项预测 2015-01-30

    互联网行业送走了其轰轰烈烈的2014年,迎来了崭新的2015.诸多公司.机构的分析与决策在开年之际需要更为宏观和远见的洞察.依照互联网近年来的发展规律和衍变过程,2015年的互联网入口必然是风起云涌.让我们在2015年的起始登高望远.寻思揣摩,未来的互联网入口将会发生怎样的倾覆变化. 一.大数据升级,入口飘在云端 大数据已成为企业.社会和国家层面重要的战略资源,各国都将会有一系列关于数据隐私的标准和条例出台.大数据的数据挖掘.机器学习和人工智能会改变小数据里的很多算法和基础理论.云计算为大数据提