小规模低性能低流量网站设计原则

news/2024/5/20 12:29:15/文章来源:https://blog.csdn.net/chinalinuxzend/article/details/4088555

原贴:http://www.dbanotes.net/arch/small_site_arch.html

小规模低性能低流量网站设计原则

到处都是什么大规模啊,高流量啊,高性能之类的网站架构设计,这类文章一是满足人们好奇心,但看过之后也就看过了,实际收益可能并不大;另外一个副作用是容易让人心潮澎湃,没学走先学跑,在很多条件仍不具备的情况下,过度设计、过度扩展(高德纳大爷也说过,"过早优化是万恶之源"),所以,这里反弹琵琶,讨论一下小规模低性能低流量的网站该如何搞法。

如果站点起步阶段可能就是一台机器(或是一台虚拟机,比如 JobsDigg.com ),这个时候,去关注什么数据拆分啊,负载均衡啊,都是没影子的事情。很多大站点的经验绝不能照搬,辩证的参考才是硬道理。

拥抱熟知的技术

动手构建站点的时候,不要到处去问别人该用什么,什么熟悉用什么,如果用自己不擅长的技术手段来写网站,等你写完,黄花菜可能都凉了。所以,有现成的软件组件可用,就不要自己重新发明轮子。人家说 Python 牛,但自己只懂 PHP ,那就 PHP 好了,如果熟悉 .net ?,那也不错。用烂技术不是丢人的事情,把好技术用烂才丢人。

架构层次清晰化

起步的阶段应该清楚的确定下来架构的层次。如果都搅和在一起,业务一旦扩增开来,如果原有的一堆东西拆不开就是非常痛苦的事情。

Web Server <--> (AppServer)<-->Cache(eg. Memcached)<-->DB

层次清晰化的一个体现是(以 LAMP 架构为例):即使只有一台机器,也应该起个 Memcached 的实例,效果的确非常好--一般人儿我不告诉他...不要把什么都压到 DB 上,DB 一旦 I/O 压力走到磁盘上,问题要暴露出来是很快的。没错,DB 本身也会利用自己的 Cache,但 DB 的Cache 和 Memcached 设计出发点毕竟不一样。

数据冗余? 有必要

很多人并不是数据库设计专家,如果应用要自己设计表结构什么的,基本都是临时抱佛脚,但三个范式很多人倒是记得牢,这是大多数小型 Web 站点遇到的一个头疼事儿,一个小小的应用搞了几十个表... 忘掉范式这个玩意儿! 记住,尽可能的冗余数据,你在数据层陷入的时间越多,你在产品上投入的就会越少。用户更关心的是产品的设计。

前端优化很重要

因为流量低,访客可能也不多,这时候值得注意的是页面不要太大,多数流量低的站点吃亏就在于一个页面动辄几兆(我前两天看到一个Startup的首页有4M之大,可谓惊人),用户看个页面半分钟都打不开,你说咋发展? 先把基本的条件满足,再去研究前端优化。

功能增加要谨慎

不是有个 80/20 原则么? 把最重要的精力放在最能给你带来商业价值的地方。有些花里胡哨的功能带来很大的开销,反而收效甚微。记住,小站点,最有价值的是业务模式,而不是你的技术有多牛。技术是为业务服务的,不要炫技。

有些网站不停的添加功能,恰恰是把这些新功能变成了压死自己的稻草。

从开始考虑性能

这一点是可选的,但也重要。设计应用的时候在开始就应考虑 Profile 这件事情。一套应用能否在后期进行有效优化和扩展,很大的程度限制在是否有比较合适的 Profile 机制上。需要补充的是,对性能的考虑必然要把有关的历史数据考虑进来。另请参见网站运维之道的容量规划以及其它小帖子。

好架构不是设计出来的

这是最后要补充的一点。好的架构和最初的设计有关系,但最重要的是发展中的演化:

发展-->发现问题-->反馈-->解决问题(执行力)--> 改进->进化到下一阶段--新问题出现(循环)

有些站点到了某个阶段停足不前,可能卡在执行力这个地方,来自用户的反馈意见上来了之后,没有驱动力去做改进。最后也是死猪不怕开水烫了。最怕听到的就是"业务不允许"的托词,试想如果不改进业务都没了,那业务还允许么? 其实就是一层心理障碍。

这篇文章有浓重的山寨风格,所以,你不要太认真。如果在用短、平、快的方式构建某些山寨网站的话,可参考其中对你有益的点,不赞同的地方可以直接忽视掉,就没必要费力留言进行争论了。

--EOF--

  • 好的业务模式(产品) + 很好的技术 = 大赚钱
  • 好的业务模式(产品) + 能用的技术 = 也赚钱
  • 差的业务模式(产品) + 好的技术 = 赚吆喝(现在的SNS就差不多这样了)
  • 差的业务模式(产品) + 差的技术 = 自己浪费资源
| Permalink | TrackBacks (0) | | Edit


Generator | Trampoline

@import url(http://www.google.com/cse/api/branding.css);
自定义搜索

本文相关评论|Comments(14)

bigCat 的评论:

猪破或WP改改主题就上了
山寨一般都这么搞的吧,嘿嘿

Tairan 的评论:

至理名言,有时真的很容易就陷入到过度设计的尴尬境地,洋洋洒洒的准备了很多东西,却不能在有限的时间中实现出来,商机就这样浪费了。

jeffz.myopenid.com Author Profile Page 的评论:

看来冯大哥很看不起.net技术阿。
我觉得数据冗余上还是不要了,数据冗余的话在维护数据完整性上需要下额外功夫,而数据冗余往往是为了提高性能而冗余的,小站点这方面压力不大,就不要冗余了,现在的ORM框架都能很方便的把关系表现为对象,操作起来很方便,不会带来太多代价。

西乔 的评论:

霍炬大叔最喜欢说啥来着:“提前优化是万恶之源!”

Fenng Author Profile Page 的评论:

小站点的话,.net 是不咋地。关键是用.net 就要用 Windows,只有一台服务器,几乎一小半的硬件资源被操作系统吃掉,你说还怎么省钱?

数据冗余更是必须的。小站点压力不大更要冗余,冗余不会吧站点搞死,但是遵守范式写两个烂SQL才会让站点奇慢如牛

Ray 的评论:

除了数据冗余,我觉得这篇文章还是很实用的。毕竟技术是用来解决问题的,如果没有那么多需求,那么当然不需要用很复杂的技术。

Fenng Author Profile Page 的评论:

@西乔

这句话嘎好,俺用了

Ray 的评论:

比较赞同jeffz的关于数据冗余的观点。

jeffz.myopenid.com Author Profile Page 的评论:

那是没有调配好系统才会让操作系统占用很多资源的吧,不该用的服务不用,不该跑得东西不跑,现在Windows Server都可以连GUI都不装了,会占多少额外资源?Windows士别三日改刮目相看了,Windows都别了n久了。
至于冗余问题,看来还是个取舍
1、冗余的优点,查询快捷。缺点:需要更多维护,业务一变,可能还要加不同冗余数据。
2、不冗余的优点,不用维护。缺点:查询需要级联,性能降低。
我的观点是基于:小站点的话,我不知道会不会有复杂查询,级联会不会多。而且小站点的数据甚至都可能完全在内存中,速度很快,数据库自身的优化也很厉害了,再加上你也提到了缓存。真不觉得冗余有什么额外好处——“尽可能的冗余数据”,更是走过了……

孙毓波 的评论:

我很喜欢这篇文章!太喜欢了!我就喜欢干这种山寨的事情。

杆儿 的评论:

每一个人心中的小站都不一样。 看博主的文章都是介绍一个大型网站,至少也是手机之家这种百万流量每日的。

那么什么算小网站呢?一个博客,一个地方信息发布平台。

博主明示!

Fenng Author Profile Page 的评论:

@杆儿

小型有明确商务目的站点,有赢利点。

不是简单的CMS。

ablmf 的评论:

骗子,居然说有美女。

gowers 的评论:

呃呃,正如你所说,python看着好,还在学。只能拿PHP了,好在有诸如wordpress这样的开源系统,架一个网站需要的优化不会太多。

添加评论

<script type="text/javascript"> <!-- writeCommenterGreeting(commenter_name, 1630, 1, commenter_id, commenter_url); //--> </script> 直接匿名评论 或者 登录 评论这篇文章(OpenID、TypeKey...)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_831747.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Varnish代替Squid做网站缓存加速器的详细解决方案[原创]

原贴:http://blog.s135.com/post/313/ 使用Varnish代替Squid做网站缓存加速器的详细解决方案 大 | 中 | 小 [2007-11-29 22:11 | by 张宴 ] [文章作者&#xff1a;张宴 本文版本&#xff1a;v1.2 最后修改&#xff1a;2008.01.02 转载请注明出处&#xff1a;http://blog.s135.…

简约而不简单:网站着陆页的设计(Landing Page Design)

着陆页是一个在线营销的概念&#xff0c;是指当访客点击一个搜索引擎优化的搜索结果进入的第一个页面或“着陆”页面。这是一个重要的页面&#xff0c;它和提供的产品或服务的广告有点类似&#xff0c;提供了与产品相关的精确的信息&#xff0c;告诉客户可以购买的产品或服务。…

大型高并发高负载网站的系统架构[转载]

鄙人先后在CERNET做过拨号接入&#xff0c;在Yahoo&3721搞过搜索前端&#xff0c;在猫扑处理过mop.com的架构升级&#xff0c;在6.cn视频网站从事开发工作&#xff0c;还在多年的工作中接触和开发过不少大中型网站的模块&#xff0c;因此在大型网站应对高负载和并发的解决方…

一步步学习SPD2010--第八章节--理解工作流(7)--创建网站工作流

一步步学习SPD2010--第八章节--理解工作流&#xff08;7&#xff09;--创建网站工作流 在之前版本的SP中&#xff0c;所有工作流都是以文档为中心。然而&#xff0c;不是所有的工作流都像那样。为了应对其他情况&#xff0c;SP2010现在支持网站工作流。网站工作流在SP网站上下文…

Hexo博客网站再配置

这两天整理网站方面的事&#xff0c;本地IIS部署&#xff0c;个人网站&#xff0c;发现我的hexo做的个人网站实在很单调&#xff0c;于是找来资料做进一步的配置。 一、网站图标 看一下hexo\themes\modernist\layout\_partial\head.ejs&#xff0c;找到这句&#xff1a; <li…

[前端]分享一个Bootstrap可视化布局的网站

如果你像我一样&#xff1a;是个前端渣&#xff0c;能看懂css和html&#xff0c;略懂Bootstarp&#xff0c;懒&#xff01; 当你每次都想独立完成一个web页面而不知道从哪里下手的时候&#xff0c;那么下面的这个网站&#xff0c;就是你所以需要的&#xff01; http://www.runo…

unity3D 在官方网站 下载资源 路径存储问题

第一步打开 官网 https://store.unity3d.com/account/users 或者 在unity3D软件中&#xff0c;单击 window 再单机 asset store 即可进入商店&#xff0c;在商店中可以找到免费的学习案例&#xff0c;如&#xff1a;Unity Sample UI&#xff0c;在搜索栏中输入Unity Sample …

你必须知道的,常用的机器学习相关网站!!!

很多人因为人工智能的大火&#xff0c;转变了职业规划或研究方向&#xff0c;开始了学习相关领域的知识之路&#xff0c;虽说人工智能领域应用很广泛&#xff0c;涉及到的知识的也很广泛&#xff0c;但机器学习作为基础知识是每个人必须要了解的知识。 机器学习的相关资料相信…

网站接入短信平台验证流程

以网站注册用户为例 前端页面,此处用到volicity前端验证,暂时不做深入 <form action"$!webPath/register_finish.htm" method"post" name"theForm" id"theForm"><table width"900" border"0" cellpaddin…

不知名网站编程(一)

不知名网站编程记录&#xff08;一&#xff09; function place(a) {c.fillStyle "red";c.fillRect(a,0,20,20);c.fillStyle "green";c.fillRect(a20,20,20,20);c.fillStyle "blue";c.fillRect(a40,40,20,20); }var a 0; while(a<200) {…

不知名网站编程(二)

不知名网站编程记录&#xff08;二&#xff09; var a 0; var b 0; while(b<6) {c.fillStyle "blue";c.fillRect(12*a,12*a,240-24*a,240-24*a);a 1;c.fillStyle "orange";c.fillRect(12*a,12*a,240-24*a,240-24*a);a 1;b 1; }var a 0; var b …

不知名网站编程(三)

不知名网站编程记录&#xff08;三&#xff09; var a 0; var b 0; do { c.fillStyle rgb(0,0,a);c.fillRect(b,b,20,20);a a 60;b b 20; }while(b<80);var a 0; var b 0; do {c.fillStyle rgb(255-1.2*a,255-0.6*a,a);c.fillRect(b,b,200-2*b,200-2*b);a a 6…

不知名网站编程(四)

不知名网站编程记录&#xff08;四&#xff09; var a 0; var b 0; do {c.fillStyle rgb(128a,0,128-a);c.fillRect(b,b,200-2*b,200-2*b);a a 32;b b 20; }while(b<80);var a 0; var b 100; do {c.fillStyle rgb(255-a,0,0);c.fillRect(0,0,b,b);a a 63;b b …

基于jsp技术的校园二手交易网站

【项目介绍】基于jsp的校园二手商品交易网站系统使用jsp技术进行开发&#xff0c;项目主要实现了一整套的校园二手交易逻辑&#xff0c; 主要功能如下&#xff08;包括但不限于&#xff0c;只列出主要功能&#xff09;&#xff1a;管理员模块 |-----用户管理 |-----商品管…

Windows 2012 R2版本下部署IIS网站

Windows 2012 R2是一个比较稳定的服务器版本&#xff0c;本文分享一篇在Windows 2012 R2版本下搭建IIS项目的操作流程。 1. 安装IIS Web服务器 打开远程桌面->控制面板->程序和功能->打开或关闭Windows功能->添加角色和功能 安装您的实际需求勾选必要的安装&#x…

技术文章精美配图模板网站推荐-创客贴

最近上海的风景很好&#xff0c;有清晨的微风、有蓝天白云&#xff0c;小编被大好河山迷住了&#xff0c;只顾着欣赏美景佳人&#xff0c;今天开始上班&#xff0c;把思绪和心情收回来&#xff0c;得花一些时间来写写东西&#xff0c;记录记录生活。我经常逛知乎&#xff0c;也…

手把手教你查看网站遭受到的Web应用攻击类型

常见Web应用攻击类型有&#xff1a;webshell、SQL注入、文件包含、CC攻击、XSS跨站脚本攻击、敏感文件访问、远程命令、恶意扫描、代码执行、恶意采集、特殊攻击、其他攻击十二种攻击类型。 如何查看网站遭受的Web应用攻击&#xff1f; &#xff08;请参照以下步骤&#xff1a;…

MySQL 测试数据(附开源网站)

MySQL测试数据 前言&#xff1a; 笔者接下来要步入MySQL DQL的学习阶段了&#xff0c;然而在开始学习时&#xff0c;苦苦没有测试数据&#xff0c;故花了很长时间利用某开源网站&#xff08;附在文章最后&#xff09;制作了4个数据表&#xff0c;四个表之间笔者经过考虑并没有…

DEDECMS打开网站后台系统首页卡解决方法

找到根目录下&#xff08;一般是dede&#xff09; templets文件夹下找到index_body.htm文件&#xff0c;将第25行至第41行部分注释或删除 保存文件&#xff0c;然后再打开后台&#xff0c;就不会有这个问题了。 转载于:https://www.cnblogs.com/500m/p/10534323.html

【博客搬家】Java 专业人士必备的网站列表

Web 站点 Web 站点的数目浩如烟海&#xff0c;如果您想要消化其中的内容&#xff0c;穷毕生之力也难以全部访问。包含 Java 语言某方面内容的详尽的网站列表会大得离谱。下列站点都是可靠、真实的。Sun 的 Java 技术站点Sun 的 Java 语言站点这是 Sun 的 Java 语言主站。作为 J…