
网站
小狼_百度
百度,web系统,分布式系统,大数据,机器学习,人工智能等爱好者
展开
-
大型网站架构演变和知识体系
之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行转载 2011-11-08 10:17:16 · 892 阅读 · 0 评论 -
Jetspeed2 问题及解决办法
第一次使用Maven,所以在create和build的时候出现很多错误,google,百度找遍了都没找到答案,最后准备要放弃的时候,突然发现把repository.zip放到maven的repository目录下,就ok了,之前所有的错误都是由于网络状况不好,maven下载不到它想要的组件。转载 2009-06-03 15:33:00 · 673 阅读 · 0 评论 -
Jetspeed2学习笔记(三)
12、Portlet对动作的处理过程 在一个标准的Web应用程序中,一个HTML表单提交将导致执行一些业务逻辑。业务处理的结果,要么作为属性而被设置在请求或会话中并转发,要么包含到下一个JSP。 在一个JSR 168 portlet中,一个HTML表单的动作URL应该是什么样呢?JSR 168定义了一个JSP标签库,称为portlet taglib。HTML表单的转载 2009-05-31 16:29:00 · 1117 阅读 · 0 评论 -
Jetspeed的中文化
Jetspeed本身已经解决国际化问题。只要按照Jetspeed的国际化要求进行正确的编码设置和配置,所有网页均可以正确显示。本文教会大家怎么样汉化Jetspeed项目。1.让Jetspeed支持中文本地化。Jetspeed中支持多种语言的本地化,偏偏没有提供中文的本地化,不知道是不是Apache开源组织对中国软件水平的歧视。不管怎样,我们中国人还要靠自己的努力来改变世界对中国软件的看法。废话不说转载 2009-05-31 12:17:00 · 1023 阅读 · 0 评论 -
jetspeed 安装
安装步骤:前提:本身已安装JDK1.5并配置好环境变量;安装好MySql,默认用户名“root”,密码test,并建一个新的库“jetspeed”。下载相关文件: 需要文件1、ant编译工具 2、maven管理工具 3、jdk1.5.0_06以上版本 4、servlet引擎 tomcat5转载 2009-05-31 11:56:00 · 1481 阅读 · 0 评论 -
几种开源Portal的简单介绍分析
主要包括:Pluto,Liferay,eXo,Jetspeed四种开源Portal的介绍和分析,有助于对具体项目选择合适的开发平台。(1)Pluto2003 年10月JSR168规范1.0正式公布后,Jakarta Apache就开始实施Pluto计划(冥王星计划),最终开发出该规范的一个参考实现(Reference Implementation),即Pluto。Pluto的1.0.1-rc2版与转载 2009-05-31 10:48:00 · 979 阅读 · 0 评论 -
Jetspeed2学习笔记(六)
28、页面风格详解 A、“webapps/jetspeed/decorations/layout”目录下方的是页面的(皮肤)布局风格,是对总体页面风格(皮肤)的控制,而不是单个portlet的控制。如果要增加自己的样式,可以把tigris拷贝一份,再进行修改 B、布局管理器实际上也是一组portlet应用,被定义在了“/webapps/jetspeed/WE转载 2009-05-31 16:19:00 · 1106 阅读 · 1 评论 -
JSP门户--JetSpeed介绍
本文将快速浏览 Apache 门户项目组的所有项目,并着重介绍门户项目组中的核心项目-Jetspeed-2。引言 JEE作为建立在 Java平台上的企业级应用解决方案,经过这些年不断发展,已经成为企业级开发的工业标准和首选平台。众多厂商如IBM,BEA和Oracle等都围绕该规范推出了相应的,功能强大的产品。JEE规范组中最受业界认同和取得最大成功的就是JEE Web层面规范,发展到今天,转载 2009-05-31 11:41:00 · 3490 阅读 · 1 评论 -
解决Jetspeed2默认安装包中,系统管理中portlet应用管理出错的bug!
分析了一整天,总算搞定这个问题:修改Jetspeed部署配置文件:WEB-INF/conf/jetspeed.properties,将里面的用户名和密码修改为和Tomcat的conf/tomcat-user.xml中的管理员的用户名和密码一样就可以了。 同时,这个配置文件定义了jetspeed部署服务器的所有规则,包括部署用户名和密码(修改它可以解决默认安装部署失败的问题-和t转载 2009-05-31 16:40:00 · 884 阅读 · 0 评论 -
Web 架构师的能力
文/刘如鸿最近和几个朋友在谈到时下流行的Web 2.0,也提到了其中最重要的角色——架构师。多方各有争执,不外乎是因为背景和视角的缘故,包括架构一词,本身就从建筑学借鉴而来,至于架构师,则可以简单地从建筑学的设计师来引申,不外乎就是设计结构,设计一个大楼的结构。回到软件本身,那就可以简单地理解为负责设计软件框架的人了。我们没有讨论清楚架构师、软件架构师、系统架构师及其Web 架构师这些看似转载 2009-06-05 10:43:00 · 724 阅读 · 0 评论 -
Freemarker网站静态化的实现
最近自己做了一个做网络广告的网站叫全方位商机平台的项目,由于网站首页上板块划分很多,不同板块的数据库查询方式不同,首页内容量巨大,如果按照一般的动态jsp页面的话那么数据库查询将是巨大的开销,会导致首页访问速度的下降。于是考虑将这个首页全部静态化。参考地址:http://www.31pt.com/。首页的速度是非常快的。 整个网站才用struts2 + spring + hibernate +转载 2009-06-15 14:29:00 · 856 阅读 · 0 评论 -
构建多服务的 Java 应用程序,第 1 部分: 探索 WURFL
在本系列教程中,您将学习如何根据客户机的功能构建能够服务于无线客户机的 Web 应用程序。这就是多服务(multiserving)的概念,它在普适计算应用程序中非常有用。Wireless Universal Resource File(WURFL)是 SourceForge.net 的开放源码项目,它使用 XML 描述无线设备的功能。本教程侧重于探索和使用 WURFL,从多服务的概念开始,通转载 2009-06-17 15:00:00 · 939 阅读 · 0 评论 -
如何减少浏览器repaint和reflow(上)
IE内核工作原理和影响性能的主要因素写的比较通俗易懂转载 2010-07-13 17:33:00 · 539 阅读 · 0 评论 -
[CSS]---margin-left例子
#idParentDiv{width:100%;padding:6px;background-color:buttonshadow;} #idDiv{width:400px;height:80px;background-color:#FFD700;padding:6px;} #idCodeDiv{width:100%;padding:4px;font-family:verdana,taho转载 2009-07-09 16:17:00 · 1135 阅读 · 0 评论 -
[CSS]---div+css怎样放两张连续的图片在同一行?
body { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; color: #000000;}#head{ margin-right:auto; margin-left:auto; width:770px; height:80px; background:#A66300;转载 2009-07-09 16:14:00 · 11678 阅读 · 0 评论 -
[CSS]--文字显示在图片下面,且多个图片显示在同一行,文字超长时用省略号替代
.card_s{ clear:both; float:left;}.row{ width:100%; clear:both; margin-right:auto; margin-left:auto;} .p_show { display:inline; margin-right:1px; float:left;}.a_text{ width:70px; h原创 2009-07-09 16:10:00 · 6520 阅读 · 0 评论 -
CSS基础:text-overflow:ellipsis溢出文本显示省略号的详细方法
今天有朋友在52css.com的留言板提出一个问题:为什么 text-overflow:ellipsis的时候没有任何效果呀?text-overflow是一个比较特殊的属性,在CSS手册中,这个属性是这样定义的: 语法: text-overflow : clip | ellipsis 参数: clip : 不显示省略标记(...),而是简单的裁切 (clip这个参数是不常用的!转载 2009-07-09 11:58:00 · 2102 阅读 · 0 评论 -
构建多服务的 Java 应用程序,第 1 部分: 探索 WURFL(4)
WURFL 的 Java APIJava API 中的类WURFL 的 Java API 包含几个类,这些类可以帮助您轻松使用 WURFL 功能。图 5 显示了 WURFL 应用程序中的 WURFL 类。图 5. WURFL 的 Java API 中的类与一个 WURFL 应用程序 注意,WURFL 的 Java API 由以下四个类组成:Wurfl、ObjectsManager、转载 2009-06-17 15:28:00 · 1231 阅读 · 0 评论 -
构建多服务的 Java 应用程序,第 1 部分: 探索 WURFL ( 3)
探索和处理 WURFLWURFL 标记wurfl.xml 文件只包含一个 标记,该标记中包含大量的 标记。每个 标记都代表一个无线设备。清单 6 显示了 标记的一种简化形式。清单 6. 包含大量 标记的 标记 generic" user_agent="" fall_back="root">转载 2009-06-17 15:18:00 · 1043 阅读 · 0 评论 -
构建多服务的 Java 应用程序,第 1 部分: 探索 WURFL
学会在 JSP 中创建定制多服务标记的方法第 2 页,共 10 页文档选项打印本页对本教程的评价转载 2009-06-17 15:02:00 · 966 阅读 · 0 评论 -
Jetspeed2学习笔记(一)
1、 Jetspeed系统的配置文件在《JetSpeed2 home》/conf/Catalina/localhost下的jetspeed.xml文件中,此文件中定义了JAAS验证的配置及数据库连接模式(包括连接语句)2、配置一个居于IFrame的应用: 1、 引入jar包:jetspeed-components-2.0.jarjetspeed-re转载 2009-05-31 16:38:00 · 1536 阅读 · 0 评论 -
Jetspeed2学习笔记(四)
16、 Portal管理研究portal管理中的【portlet应用生命周期管理】,可以发现,这个portlet是一个普通的GenericServletPortlet,其通过以下代码来获得一些系统的管理器:PortletContext context = getPortletContext(); //注册管理器 registry转载 2009-05-31 16:25:00 · 1126 阅读 · 0 评论 -
Jetspeed2学习笔记(五)
19、Jetspeed应用框架详解: jetspeed使用spring来作为它的缺省组件框架,但是,jetspeed的体系架构使得它可以很容易替换其组件管理框架,其控制是在JetspeedServlet中,其类图如下:在JetspeedServlet初始化启动时,在其init()方法中,有如下调用引擎的代码:engine = new JetspeedEn转载 2009-05-31 16:21:00 · 2525 阅读 · 0 评论 -
再谈 eBay 的扩展性最佳实践
很多人都觉得 eBay 在 QCon (北京) 上的技术讲座不错,但对我来说,其实冲击力没那么大了。eBay 一两年前就是这个 <acronym title="PowerPoint">PPT 。不过还是比 Amazon 的 Jeff Barr 强了很多,以后要是开个什么会,你把 Jeff Barr 请来还讲那个销售文档,估计自己都不好意思。不过,eBay 这次的PPT 总算还是有点更新的。转载 2009-05-25 16:05:00 · 649 阅读 · 0 评论 -
Facebook 架构学习
在 QCon 2008 (旧金山站) 上Facebook 做的这个技术分享有不少值得借鉴的东西。所以,暂停对 QCon 北京的回顾,临时插播一贴。设计原则尽可能的使用开源软件,并且在需要优化的时候进行优化 Unix 哲学。包括,模块化原则;整合化原则;清晰化原则等 任何组件具备扩展性 最小化故障影响 简化,简化,简化!架构概览Facebook 是 LAMP转载 2009-05-25 15:38:00 · 540 阅读 · 0 评论 -
面向用户的网站性能优化
在互联网这个行业,"以用户为中心的设计"已经达成共识,但很少听到有人说"以用户为中心进行性能优化"之类的话,很多时候,网站性能优化是面向服务器来进行,或许,应该扭转一点思维,改到考虑如何面向用户进行网站性能优化的时候了。优化的目的为什么要做优化? 不外乎如下几种原因:节省资源,服务器、网络资源; 消除或者减少系统瓶颈; 提升用户体验 多数公司做优化都是从前两者出发,转载 2009-05-25 15:10:00 · 621 阅读 · 0 评论 -
YouTube 的架构扩展
在西雅图扩展性的技术研讨会上,YouTube 的 Cuong Do 做了关于 YouTube Scalability 的报告。视频内容在 Google Video 上有(地址),可惜国内用户看不到。Kyle Cordes 对这个视频中的内容做了介绍。里面有不少技术性的内容。值得分享一下。(Kyle Cordes 的介绍是本文的主要来源)简单的说 YouTube 的数据流量, "一天的You转载 2009-05-25 14:33:00 · 528 阅读 · 0 评论 -
从LiveJournal后台发展看大规模网站性能优化方法
一、LiveJournal发展历程LiveJournal是99年始于校园中的项目,几个人出于爱好做了这样一个应用,以实现以下功能: 博客,论坛 社会性网络,找到朋友 聚合,把朋友的文章聚合在一起LiveJournal采用了大量的开源软件,甚至它本身也是一个开源软件。 在上线后,LiveJournal实现了非常快速的增长:2004年4月份:280万注册用户。转载 2009-05-25 12:31:00 · 424 阅读 · 0 评论 -
大型网站架构技术方案集锦
http://www.cnblogs.com/net205/articles/1257407.html 1. PlentyOfFish 网站架构学习http://www.dbanotes.net/arch/plentyoffish_arch.html采取 Windows 技术路线的 Web 2.0 站点并不多,除了 MySpace ,另外就是这个 PlentyOfFish。转载 2009-05-25 11:19:00 · 543 阅读 · 0 评论 -
大型高并发高负载网站的系统架构
转载请保留出处:俊麟 Michael’s blog (http://www.toplee.com/blog/?p=71)Trackback Url : http://www.toplee.com/blog/wp-trackback.php?p=71 我在CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从事过搜索引擎前端开发,又在MOP处理过大型社区猫扑大杂烩的架构升级等工作转载 2009-05-25 18:07:00 · 4134 阅读 · 1 评论 -
大量小文件的实时同步方案
传统的文件同步方案有rsync(单向) 和 unison(双向)等,它们需要扫描所有文件后进行比对,差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将非常耗时。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。之前看了Amazon的Dynamo的设计文档,它们每个节点的数据是通过Hash Tree来实现同步,既有通过日志来同步的软实时特点(msyql, bdb等转载 2009-05-25 14:53:00 · 759 阅读 · 0 评论 -
小规模低性能低流量网站设计原则
到处都是什么大规模啊,高流量啊,高性能之类的网站架构设计,这类文章一是满足人们好奇心,但看过之后也就看过了,实际收益可能并不大;另外一个副作用是容易让人心潮澎湃,没学走先学跑,在很多条件仍不具备的情况下,过度设计、过度扩展(高德纳大爷也说过,"过早优化是万恶之源"),所以,这里反弹琵琶,讨论一下小规模、低性能、低流量的网站该如何搞法。如果站点起步阶段可能就是一台机器(或是一台虚拟机,比如 Jo转载 2009-05-25 16:27:00 · 799 阅读 · 0 评论 -
实战 Lucene,第 1 部分: 初识 Lucene
本文首先介绍了Lucene的一些基本概念,然后开发了一个应用程序演示了利用Lucene建立索引并在该索引上进行搜索的过程。Lucene 简介Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工转载 2009-05-27 15:15:00 · 729 阅读 · 0 评论 -
请谈谈NIO scoket适用的与不适用的场景
我个人的理解,由于“NIO socket”的实现主体上一般为一个线性的处理过程。 所以只适合做 “请求 —— 响应 ”式的网络连接。 也就是说客户端必须向服务器发送一个请求, 服务器才能响应给客户端数据。这种场景比较典型就是web服务器。 但对于由服务器主动发起的信息的服务则无从下手,比如说一个在线游戏服务器。服务器端常常需要向所有在线用户发送同步数据信息。类似此种服务只能由传统的 “多线程IO转载 2009-05-27 16:03:00 · 1620 阅读 · 2 评论 -
Jetspeed JetExpress Tutorial Portal笔记1 -- 定制portal安装
0. 约定 目录分隔符使用’/等同于’/,文中仅使用’/’1. 资源Jetspeed Tutorial地址:http://portals.apache.org/tutorials/jetspeed-2/index.html Jetspeed Tutorial Resources文件: http://portals.apache.org/tuto转载 2009-06-01 14:28:00 · 1158 阅读 · 1 评论 -
Jetspeed2学习笔记(二)
6、一个Subject也许会与一个AccessControlContext联系在一起,可以通过如下方法返回一个与AccessControlContext联系在一起的subject:public static Subject getSubject(final AccessControlContext acc); 7、一个特定的Sub转载 2009-05-31 16:36:00 · 1173 阅读 · 0 评论 -
开源数据库 Sharding 技术 (Share Nothing)
从 Shard 到 Sharding "Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。"Sharding" 姑且称之为"分片"。Sharding 不是一门新技术,而是一个相对简朴的软件理念。如您所知,MySQL 5 之后才有了数据表分区功能,那么在此之前,很多 MySQL 的潜在用户都对 MySQL 的扩展性有转载 2009-05-25 16:13:00 · 640 阅读 · 0 评论 -
Tailrank 网站架构
每天数以千万计的 Blog 内容中,实时的热点是什么? Tailrank 这个 Web 2.0 Startup 致力于回答这个问题。 专门爆料网站架构的 Todd Hoff 对 Kevin Burton 进行了采访。于是我们能了解一下 Tailrank 架构的一些信息。每小时索引 2400 万的 Blog 与 Feed,内容处理能力为 160-200Mbps,IO 写入大约在10-15MB转载 2009-05-25 15:06:00 · 449 阅读 · 0 评论 -
使用 Apache MINA 开发高性能网络应用程序
Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,是用于开发高性能和高可用性的网络应用程序的基础框架。通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。 当前发行的 MINA 版本支持基于 Java NI转载 2009-05-27 15:51:00 · 1714 阅读 · 0 评论 -
使用memcached进行内存缓存
通常的网页缓存方式有动态缓存和静态缓存等几种,在ASP.NET中已经可以实现对页面局部进行缓存,而使用memcached的缓存比ASP.NET的局部缓存更加灵活,可以缓存任意的对象,不管是否在页面上输出。而memcached最大的优点是可以分布式的部署,这对于大规模应用来说也是必不可少的要求。LiveJournal.com使用了memcached在前端进行缓存,取得了良好的效果,而像wikiped转载 2009-05-27 14:51:00 · 699 阅读 · 0 评论