谈谈网站架构设计开发的一些来龙去脉日期:2019-07-26 人气:603320
   | 
| 
 架构这个问题怎么出现的? 当然是信息社会从单机时代推进到网络时代的产物。单机时代,大家一般买台PC,装个Windows,自己捣鼓着玩。各种应用基本都是隔离的。如果你想传输数据,软盘、刻录光盘、拷贝硬盘…因为即便后来有了点网络应用,几十K的网速你还能传啥呢。所以那个时候,应用软件、游戏等等基本都是软盘/光盘发行,网络还指望不上。 这个时代的软件系统也很粗糙,哪里谈的上架构思想,单机能正常跑就不错了,知足吧。后来有点进步,出现所谓“C/S”、“B/S”架构的应用模式,还处于原始阶段。 架构思维和相关技术,是跟着网络时代的迅猛发展到来的。网速开始提升,大量的网民出现,海量的信息开始上网,各种网络应用迅速发展,网游、电商等等。最近10年,移动端风生水起,原本的桌面操作系统成了终端的一种,不再是主角。外部环境的变化和需求,催生了相关技术的发展。原本的单机应用,纷纷转移到网络,再延伸到手机端。Windows应用时代的开发技术,明显不够了。以前的程序,装到机器上,如果出现崩溃、性能差,还可能是本机环境/硬件问题导致的,软件就你一个人用,跟别人无关。可是网站面向全世界,最少面向一个国家的网民开放,运营得好,就是巨量的用户在使用,如果瘫痪大家都不能打开,影响巨大。在系统设计、开发里面,这种情况下要考虑的问题是跟前面的时代截然不同的。 即使是手机应用程序,后面基本还是网站相关的技术在支撑,因为要跟Web整合。全靠自己自定义协议和模式?哪里有使用已有的成熟工业技术来的可靠,开发的快,扩展还容易。 我看到的架构知识和技术,大半来自于流量巨大的大型网站,特别是电商网站。这其实很容易理解的。电商这些年发展得非常快,网站经常搞促销、秒杀。这些活动,给网站系统带来极大的挑战,压力很大,相关的开发人员经过反复探索,总结出了很好的知识。阿里巴巴双11的零点那一瞬间的流量,足以击垮任何未经精心准备的系统。热门产品的秒杀,瞬间的流量也十分的巨大。海量数据、高并发需求,是很典型的特征。这个时候,别指望什么单机的性能可以解决多少问题了,无论什么软件/硬件,上限很快就到了,向上扩展单机处理性能是不行的。 怎么办?谷歌怎么干的?难道谷歌搞了几个巨无霸服务器做搜索服务?没用的,它早就发现行不通。其它场景也是类似的道理。 网站架构核心的理念是什么? 其实我觉得并不复杂,核心性质的东西大都是很简单的。 架构的理念,就是不断找到系统的瓶颈和弱点,采用分而治之、缓存、异步等手段逐渐化解,并平衡处理系统各项要求(性能、安全、可用性、伸缩性、扩展性…)的过程。由此形成了架构。 很好理解,就是:兵来将挡,水来土掩。架构必须做设计规划,你必须得懂得要做什么。但是又不能过度设计,不必也不能完全抄袭大网站的做法,要适合自己。“淘宝就是这么做的!” —— 你不是淘宝,你也不是谷歌。业务需求变化快,留个适度冗余就够了,不然会很浪费资源。架构是随着业务变的,如果没业务需要你变个啥。 单机思维要彻底抛弃才行。用户浏览器访问网站页面,从打开网址,到最后看到结果,中间是一个较长的操作链条。通常的访问顺序是这样:浏览器发出请求->DNS解析域名->浏览器连接服务器->服务器访问数据库->服务器计算数据结果->返回数据给浏览器。 文章其实就是从每个链条里面做。每个不同的动作,都有增加扩展、分解流量的机会,于是乎,架构产生,系统开始膨胀起来了。 DNS解析域名,可以智能化解析到不同的地域,不同的服务器区域,就近分配计算资源。 浏览器连接服务器,可以使用负载均衡、反向代理等技术,接入服务器集群,把访问分散到不同的设备上,却可以返回同样的结果。 服务器访问数据库,可以根据数据库读多写少的现象,做读写分离。还可以采用NoSQL应用,缓存热点数据,可以分割业务区块,缓解数据库访问的压力。再后面还可以做访问代理,数据存储集群化。 服务器计算数据结果,可以采用合适的语言和技术,适度缓存数据。可以采用消息队列、RPC,异步处理,平滑访问洪峰。 返回数据给浏览器,系统可以加CDN,静态资源就近访问。可以大力使用浏览器缓存手段,规避不需要的更新和访问需要。 看吧,每项事务,后面都是一堆学问,都是非常专业的工作。由此才需要各类专业人才通力合作完成。当然,因为IT产业的发展,每个链条都有不错的资源/专业服务商/软件包/工具链/中间件产品,开发出来供选择使用。具体在需要的时候,研究使用细节、如何搭配就可以了。 好多地方,是需要的时候再用。好多的事情,不遇到你也想不出关键点在什么地方,坑在哪里,所以坦然接受吧。 网站架构的常见演化路径是什么? 用图表示比较理想,这里直接抄来吧,图片来自李智慧的书《大型网站技术架构——核心原理与案例分析》。注意,它的变化不是固定的,千万别死板的套用,因为它是电商的,它的演化过程、设计不一定适合你的应用,要学会灵活应对。 1、初始阶段的网站架构 2、应用服务和数据服务分离 3、网站使用缓存 4、应用服务器集群部署 5、数据库读写分离 6、网站使用反向代理和CDN加速访问 7、使用分布式文件和分布式数据库系统 8、使用NoSQL系统和搜索引擎 9、应用拆分 10、分布式服务 网站架构常用的工具包是什么? 实际上要根据需求和业务特性进行适当的选择,这些工具包都是为了解决具体问题而开发的。但是通常用的产品,基本都是Linux平台上的开源产品,很多中间件/工具包使用Java开发 —— 它是常青树是有原因的。但中小型网站使用PHP也很多,因为数据的量级内还足够处理,开发又方便,成本更低。一些产品使用很广泛,比如NoSQL类的Redis,已经几乎成了架构标配,甚至一开始就可以用它缓存系统的热点数据,减少数据库访问和计算。 其它工具包,在需要的时候去找合适的采用。 随着信息化社会的发展进步,新的产品/应用还会出现,系统的架构还会进一步演化,适应需求。 ![]() 文本来自采集文章 http://zhangbei.sidehk.com/24/654.html 如需转载或删除,请联系管理员。 上一条:网页——设计需要考虑哪些问题! 
    
    
 
    
 | 
热点资讯
        
01-23 Web网站性能测试分析及调优实例
01-23 外贸网站建设注意事项
01-23 阿里巴巴店铺展现变低了,诚信通运营如何寻找原因?
01-23 辽源信息港网站建设客户
01-23 怎样选择网站设计公司
01-23 Web开发涉及语言和技术
01-23 搜索引擎优化(SEO)与百度竞价优劣势分析
01-23 手机网站优化并不比普通网站优化更容易
01-23 高端企业商城网站建设定制设计制作一站式服务
01-23 不以客户为中心的网站建设都是耍流氓 
01-23 做网站就这几步,你都知道吗? 
01-23 微信推广/网站建设需要注意什么
01-23 营销型网站建设需要注意以下细节 
01-23 网络广告推广
01-23 什么叫成功的网站设计?
01-23 BlokDust:这个网站大概是目前最好的网页端音乐创作工具了
01-23 网站建设和发布时哪些因素会影响排名优化?
01-23 近期对百度谷歌排名变动的猜想
01-23 阿里卖家需要掌握的店铺运营技巧
01-23 外贸企业网站建设和运营中的四个要点
01-23 提高网站关键词排名的几个技巧
01-23 利用差异化内容提高网站排名
01-23 如何做好现阶段的网站排名?
01-23 网站降权,排名下降!百度推广是怎么了?
【张北本地网络公司】——承诺3小时内上门服务!张北上门全国热线:400-666-2014 【我要收藏此页面】 网站地图  
网站维护:深一深圳网站建设 
全国张北注册公司-服务网店
- 茶山网站建设
 - 清溪网站设计
 - 塘厦网络公司
 - 黄江网站建设
 - 凤岗网站设计
 - 石龙网络公司
 - 石碣网站建设
 - 长安网站设计
 - 常平网络公司
 - 樟木头网站建设
 - 厚街网站设计
 - 虎门网络公司
 - 西城网站建设
 - 南城网站设计
 - 东城网络公司
 - 城区网站建设
 - 罗湖网站建设
 - 华强北网络公司
 - 西丽网站建设
 - 大浪网络公司
 - 光明网站建设
 - 龙华网站设计
 - 观澜网络公司
 - 观兰网站建设
 - 公明网站设计
 - 松岗网络公司
 - 沙井网站建设
 - 西乡网站设计
 - 福永网络公司
 - 石岩网站建设
 - 坂田网站设计
 - 大芬村网络公司
 - 坪山网站建设
 - 坪地网站设计
 - 横岗网络公司
 - 布吉网站建设
 - 平湖网站设计
 - 遵义
 - 资阳
 - 自贡
 - 淄博
 - 株洲
 - 驻马店
 - 珠海
 - 诸城
 - 舟山
 - 周口
 - 中卫
 - 中山
 - 重庆
 - 镇江
 - 郑州
 - 正定
 - 赵县
 - 昭通
 - 肇庆
 - 湛江
 - 漳州
 - 张掖
 - 浙江
 - 云南
 - 新疆
 - 西藏
 - 四川
 - 陕西
 - 山西
 - 山东
 - 内蒙古
 - 辽宁
 - 江西
 - 江苏
 - 湖南
 - 湖北
 - 黑龙江
 - 河南
 - 河北
 - 贵州
 - 广西
 - 广东
 - 甘肃
 - 福建
 - 安徽
 - 大朗
 - 横沥
 - 东坑
 - 寮步
 - 谢岗
 - 桥头
 - 企石
 - 石排
 - 章丘
 - 张家口
 - 张家界
 - 张北
 - 枣庄
 - 禹州
 - 玉溪
 - 玉树
 - 云浮
 - 运城
 - 玉林
 - 榆林
 - 岳阳
 - 永州
 - 永新
 - 益阳
 - 鹰潭
 - 营口
 - 银川
 - 伊犁
 - 伊春
 - 宜春
 - 宜昌
 - 宜宾
 - 盐田
 - 烟台
 - 鄢陵
 - 扬州
 - 阳泉
 - 阳江
 - 阳春
 - 盐城
 - 延边
 - 延安
 - 雅安
 - 徐州
 - 许昌
 - 宣城
 - 西双版纳
 - 忻州
 - 新余
 - 信阳
 - 新乡
 - 西宁
 - 邢台
 - 兴安盟
 - 锡林郭勒盟
 - 孝感
 - 咸阳
 - 仙桃
 - 咸宁
 - 湘西
 - 湘潭
 - 香港
 - 襄樊
 - 西安
 - 厦门
 - 梧州
 - 吴忠
 - 五指山
 - 武夷山
 - 无锡
 - 武威
 - 乌鲁木齐
 - 乌兰察布
 - 五家渠
 - 芜湖
 - 武汉
 - 乌海
 - 温州
 - 文山
 - 渭南
 - 威海
 - 潍坊
 - 瓦房店
 - 图木舒克
 - 吐鲁番
 - 铜仁
 - 铜陵
 - 通辽
 - 通化
 - 铜川
 - 桐城
 - 铁岭
 - 天水
 - 天门
 - 天津
 - 唐山
 - 泰州
 - 台州
 - 太原
 - 台湾
 - 台山
 - 泰安
 - 宿州
 - 苏州
 - 宿迁
 - 随州
 - 遂宁
 - 绥化
 - 松原
 - 四平
 - 沭阳
 - 朔州
 - 顺德
 - 双鸭山
 - 石嘴山
 - 十堰
 - 石家庄
 - 石河子
 - 深圳
 - 沈阳
 - 神农架
 - 邵阳
 - 绍兴
 - 韶关
 - 汕尾
 - 汕头
 - 山南
 - 上饶
 - 商丘
 - 商洛
 - 上海
 - 三亚
 - 三明
 - 三门峡
 - 日照
 - 日喀则
 - 衢州
 - 曲靖
 - 泉州
 - 七台河
 - 其他
 - 齐齐哈尔
 - 钦州
 - 秦皇岛
 - 清远
 - 庆阳
 - 清徐
 - 青岛
 - 黔西南
 - 黔南
 - 潜江
 - 黔东南
 - 濮阳
 - 莆田
 - 普洱
 - 萍乡
 - 平凉
 - 平顶山
 - 攀枝花
 - 盘锦
 - 怒江
 - 宁德
 - 宁波
 - 内江
 - 那曲
 - 南阳
 - 南通
 - 南山
 - 南平
 - 南宁
 - 南京
 - 南充
 - 南昌
 - 牡丹江
 - 明港
 - 绵阳
 - 梅州
 - 眉山
 - 茂名
 - 马鞍山
 - 吕梁
 - 泸州
 - 洛阳
 - 漯河
 - 娄底
 - 龙岩
 - 陇南
 - 龙岗网站设计
 - 柳州
 - 六盘水
 - 六安
 - 丽水
 - 林芝
 - 临猗
 - 临沂
 - 临夏
 - 临汾
 - 临沧
 - 丽江
 - 辽源
 - 辽阳
 - 聊城
 - 连云港
 - 凉山
 - 乐山
 - 拉萨
 - 兰州
 - 廊坊
 - 莱芜
 - 来宾
 - 昆明
 - 库尔勒
 - 克孜勒苏
 - 垦利
 - 克拉玛依
 - 喀什
 - 开封
 - 济源
 - 鸡西
 - 酒泉
 - 九江
 - 锦州
 - 晋中
 - 济宁
 - 金华
 - 荆州
 - 荆门
 - 景德镇
 - 晋城
 - 金昌
 - 济南
 - 吉林
 - 揭阳
 - 嘉峪关
 - 嘉兴
 - 焦作
 - 江门
 - 吉安
 - 佳木斯
 - 湖州
 - 霍邱
 - 呼伦贝尔
 - 葫芦岛
 - 惠州网络公司
 - 呼和浩特
 - 黄石
 - 黄山
 - 黄南
 - 黄冈
 - 淮南
 - 怀化
 - 淮北
 - 淮安
 - 红河
 - 贺州
 - 菏泽
 - 河源
 - 和县
 - 和田
 - 衡阳
 - 衡水
 - 黑河
 - 鹤岗
 - 合肥
 - 河池
 - 鹤壁
 - 汉中
 - 杭州
 - 邯郸
 - 哈密
 - 海西
 - 海南
 - 海拉尔
 - 海口
 - 海东
 - 海北
 - 哈尔滨
 - 固原
 - 果洛
 - 贵阳
 - 桂林
 - 贵港
 - 馆陶
 - 广州
 - 广元
 - 广安
 - 甘孜
 - 赣州
 - 甘南
 - 抚州
 - 福州
 - 阜阳
 - 阜新
 - 福田
 - 抚顺
 - 佛山
 - 防城港
 - 鄂州
 - 恩施
 - 鄂尔多斯
 - 东营
 - 东莞
 - 迪庆
 - 定州
 - 定西
 - 德州
 - 德阳
 - 德宏
 - 达州
 - 大兴安岭
 - 大同
 - 大庆
 - 丹东
 - 大连
 - 大理
 - 大丰
 - 滁州
 - 楚雄
 - 崇左
 - 池州
 - 赤峰
 - 郴州
 - 成都
 - 承德
 - 潮州
 - 朝阳
 - 巢湖
 - 常州
 - 长治
 - 长沙
 - 昌吉
 - 长葛
 - 昌都
 - 常德
 - 长春
 - 沧州
 - 亳州
 - 博尔塔拉
 - 滨州
 - 毕节
 - 本溪
 - 北京
 - 北海
 - 巴中
 - 防狼喷雾
 - 巴音郭楞
 - 巴彦淖尔盟
 - 包头
 - 保山
 - 宝鸡
 - 保定
 - 宝安网站建设
 - 蚌埠
 - 白银
 - 白山
 - 百色
 - 白城
 - 澳门
 - 安阳
 - 安顺
 - 鞍山
 - 安庆
 - 安康
 - 阿里
 - 阿拉善盟
 - 阿拉尔
 - 阿克苏
 - 阿坝
 - 道滘网站设计
 - 惠城
 - 惠阳网络公司
 - 博罗
 - 惠东
 - 龙门
 - 淡水
 - 大埔
 - 五华
 - 紫金
 - 龙川
 










