马上注册,结交更多好友,享用更多功能,让你轻松玩转合天下互动社区。
您需要 登录 才可以下载或查看,没有帐号?中文注册
x
一个具有一定知名度的网站,面对的问题无非是:稳定的性能、海量访问、海量数据。 优秀的website architecture应该良好的解决上述问题,那么Terry认为应该熟悉或了解下面的技术: - 开发语言架构:应该至少熟悉一种web开发语言,包括java、web、python、ror等,然后采用比较稳健的、成熟的开发语言架构
- 单点登陆
- 自建session server,类似discuz的passport的方案
- 目前常用的是cas sso解决方案$ O4 g6 P5 H6 ^8 I+ u2 ?- Q
- web服务器集群:
- 负载均衡:软件比如keepalived,ultramokey.硬件如四层交换机;
- web服务器集群方案:常用lvs
- web服务器选型:apache、Nginx、lighttpd
- 其他服务器-如java 应用服务器的集群部署;
3 L. w0 o0 n6 g8 r( \; X$ r
- 利用缓存:
- 页面静态化规则,页面缓存;缓存软件:squid,oscache,等
- 常用数据缓存解决方案,缓存数据命中率
- 如果采用ORM,考虑采用二级缓存6 h, V) v& J0 d7 c7 v1 O
- ajax:避免页面全局刷新,提高用户体验;合理使用,避免泛滥。
- 数据库
- 集群数据库
- 如果数据库采用mysql,那么一般是master-slave,对master进行写入或更新数据,对slave进行数据的查询。如果使用 hibernate那么,使用native sql太动态绑定不同的数据库表。复杂一些可以研究一下Hibernate Shards,这是google捐献给hibernate的项目的。
- oracle数据库集群,可以采用磁盘阵列方式,oracle部署在几个服务器上,表和数据文件放在磁盘阵列上4 }9 e+ J' R s1 u2 x0 l3 M0 P, S0 q
- 做好备份策略
- 分清不同数据的生命周期。根据不同的生命周期,做好数据的归档/转存的工作
- 商业数据存储首选大型商业数据库,其他数据可以用mysql等开源数据库。
4 O! B' Q! b/ k; c, l! R4 W% w
- 搜索引擎:
- 常用的技术选型是lucene ,另外有ferret,Sphinx。
- 分布式存储和分布式查询
- 中文分词6 b6 X( H3 Q) v2 B
- 网络蜘蛛:
- 知道如何抓取别人网站的网页
- 懂得如何屏蔽未知或部分蜘蛛访问你的网站
" u0 ^- b7 ~2 |; G5 L; K& M
- seo
- 关注互联网业内的情况
- facebook的f8是啥回事
- google的产品和api,了解Google Maps API、OpenSocial API、Google Apps等等
- 找到sns,blog,wiki等web2.0的技术表现形式
- guice、google toolkit、Android
- 关注新冒出来一些网站的情况
- 研究和分析知名网站的架构
- 跟踪一些知名技术专家的文章或blog
- 适当的参加一些技术或互联网聚会和话题讨论6 L, j- i1 E# {% A2 @7 ^* S7 m0 b
- 了解比较新的一些技术概念,如soa、esb、云计算、MapReduce、BigTable、Google
& W' n R. e9 z5 \! S
5 x$ [) @1 \0 m) Q: _ |