谈谈网站架构设计开发的一些来龙去脉日期:2019-07-26 人气:549253
|
架构这个问题怎么出现的? 当然是信息社会从单机时代推进到网络时代的产物。单机时代,大家一般买台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://yichang.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 BlokDust:这个网站大概是目前最好的网页端音乐创作工具了
- 01-23 什么叫成功的网站设计?
- 01-23 近期对百度谷歌排名变动的猜想
- 01-23 阿里卖家需要掌握的店铺运营技巧
- 01-23 网站建设和发布时哪些因素会影响排名优化?
- 01-23 外贸企业网站建设和运营中的四个要点
- 01-23 提高网站关键词排名的几个技巧
- 01-23 利用差异化内容提高网站排名
- 01-23 如何做好现阶段的网站排名?
- 01-23 网站降权,排名下降!百度推广是怎么了?
【宜昌本地网络公司】——承诺3小时内上门服务!宜昌上门全国热线:400-666-2014 【我要收藏此页面】 网站地图
网站维护:深一深圳网站建设
全国宜昌注册公司-服务网店
- 茶山网站建设
- 清溪网站设计
- 塘厦网络公司
- 黄江网站建设
- 凤岗网站设计
- 石龙网络公司
- 石碣网站建设
- 长安网站设计
- 常平网络公司
- 樟木头网站建设
- 厚街网站设计
- 虎门网络公司
- 西城网站建设
- 南城网站设计
- 东城网络公司
- 城区网站建设
- 罗湖网站建设
- 华强北网络公司
- 西丽网站建设
- 大浪网络公司
- 光明网站建设
- 龙华网站设计
- 观澜网络公司
- 观兰网站建设
- 公明网站设计
- 松岗网络公司
- 沙井网站建设
- 西乡网站设计
- 福永网络公司
- 石岩网站建设
- 坂田网站设计
- 大芬村网络公司
- 坪山网站建设
- 坪地网站设计
- 横岗网络公司
- 布吉网站建设
- 平湖网站设计
- 遵义
- 资阳
- 自贡
- 淄博
- 株洲
- 驻马店
- 珠海
- 诸城
- 舟山
- 周口
- 中卫
- 中山
- 重庆
- 镇江
- 郑州
- 正定
- 赵县
- 昭通
- 肇庆
- 湛江
- 漳州
- 张掖
- 浙江
- 云南
- 新疆
- 西藏
- 四川
- 陕西
- 山西
- 山东
- 内蒙古
- 辽宁
- 江西
- 江苏
- 湖南
- 湖北
- 黑龙江
- 河南
- 河北
- 贵州
- 广西
- 广东
- 甘肃
- 福建
- 安徽
- 大朗
- 横沥
- 东坑
- 寮步
- 谢岗
- 桥头
- 企石
- 石排
- 章丘
- 张家口
- 张家界
- 张北
- 枣庄
- 禹州
- 玉溪
- 玉树
- 云浮
- 运城
- 玉林
- 榆林
- 岳阳
- 永州
- 永新
- 益阳
- 鹰潭
- 营口
- 银川
- 伊犁
- 伊春
- 宜春
- 宜昌
- 宜宾
- 盐田
- 烟台
- 鄢陵
- 扬州
- 阳泉
- 阳江
- 阳春
- 盐城
- 延边
- 延安
- 雅安
- 徐州
- 许昌
- 宣城
- 西双版纳
- 忻州
- 新余
- 信阳
- 新乡
- 西宁
- 邢台
- 兴安盟
- 锡林郭勒盟
- 孝感
- 咸阳
- 仙桃
- 咸宁
- 湘西
- 湘潭
- 香港
- 襄樊
- 西安
- 厦门
- 梧州
- 吴忠
- 五指山
- 武夷山
- 无锡
- 武威
- 乌鲁木齐
- 乌兰察布
- 五家渠
- 芜湖
- 武汉
- 乌海
- 温州
- 文山
- 渭南
- 威海
- 潍坊
- 瓦房店
- 图木舒克
- 吐鲁番
- 铜仁
- 铜陵
- 通辽
- 通化
- 铜川
- 桐城
- 铁岭
- 天水
- 天门
- 天津
- 唐山
- 泰州
- 台州
- 太原
- 台湾
- 台山
- 泰安
- 宿州
- 苏州
- 宿迁
- 随州
- 遂宁
- 绥化
- 松原
- 四平
- 沭阳
- 朔州
- 顺德
- 双鸭山
- 石嘴山
- 十堰
- 石家庄
- 石河子
- 深圳
- 沈阳
- 神农架
- 邵阳
- 绍兴
- 韶关
- 汕尾
- 汕头
- 山南
- 上饶
- 商丘
- 商洛
- 上海
- 三亚
- 三明
- 三门峡
- 日照
- 日喀则
- 衢州
- 曲靖
- 泉州
- 七台河
- 其他
- 齐齐哈尔
- 钦州
- 秦皇岛
- 清远
- 庆阳
- 清徐
- 青岛
- 黔西南
- 黔南
- 潜江
- 黔东南
- 濮阳
- 莆田
- 普洱
- 萍乡
- 平凉
- 平顶山
- 攀枝花
- 盘锦
- 怒江
- 宁德
- 宁波
- 内江
- 那曲
- 南阳
- 南通
- 南山
- 南平
- 南宁
- 南京
- 南充
- 南昌
- 牡丹江
- 明港
- 绵阳
- 梅州
- 眉山
- 茂名
- 马鞍山
- 吕梁
- 泸州
- 洛阳
- 漯河
- 娄底
- 龙岩
- 陇南
- 龙岗网站设计
- 柳州
- 六盘水
- 六安
- 丽水
- 林芝
- 临猗
- 临沂
- 临夏
- 临汾
- 临沧
- 丽江
- 辽源
- 辽阳
- 聊城
- 连云港
- 凉山
- 乐山
- 拉萨
- 兰州
- 廊坊
- 莱芜
- 来宾
- 昆明
- 库尔勒
- 克孜勒苏
- 垦利
- 克拉玛依
- 喀什
- 开封
- 济源
- 鸡西
- 酒泉
- 九江
- 锦州
- 晋中
- 济宁
- 金华
- 荆州
- 荆门
- 景德镇
- 晋城
- 金昌
- 济南
- 吉林
- 揭阳
- 嘉峪关
- 嘉兴
- 焦作
- 江门
- 吉安
- 佳木斯
- 湖州
- 霍邱
- 呼伦贝尔
- 葫芦岛
- 惠州网络公司
- 呼和浩特
- 黄石
- 黄山
- 黄南
- 黄冈
- 淮南
- 怀化
- 淮北
- 淮安
- 红河
- 贺州
- 菏泽
- 河源
- 和县
- 和田
- 衡阳
- 衡水
- 黑河
- 鹤岗
- 合肥
- 河池
- 鹤壁
- 汉中
- 杭州
- 邯郸
- 哈密
- 海西
- 海南
- 海拉尔
- 海口
- 海东
- 海北
- 哈尔滨
- 固原
- 果洛
- 贵阳
- 桂林
- 贵港
- 馆陶
- 广州
- 广元
- 广安
- 甘孜
- 赣州
- 甘南
- 抚州
- 福州
- 阜阳
- 阜新
- 福田
- 抚顺
- 佛山
- 防城港
- 鄂州
- 恩施
- 鄂尔多斯
- 东营
- 东莞
- 迪庆
- 定州
- 定西
- 德州
- 德阳
- 德宏
- 达州
- 大兴安岭
- 大同
- 大庆
- 丹东
- 大连
- 大理
- 大丰
- 滁州
- 楚雄
- 崇左
- 池州
- 赤峰
- 郴州
- 成都
- 承德
- 潮州
- 朝阳
- 巢湖
- 常州
- 长治
- 长沙
- 昌吉
- 长葛
- 昌都
- 常德
- 长春
- 沧州
- 亳州
- 博尔塔拉
- 滨州
- 毕节
- 本溪
- 北京
- 北海
- 巴中
- 防狼喷雾
- 巴音郭楞
- 巴彦淖尔盟
- 包头
- 保山
- 宝鸡
- 保定
- 宝安网站建设
- 蚌埠
- 白银
- 白山
- 百色
- 白城
- 澳门
- 安阳
- 安顺
- 鞍山
- 安庆
- 安康
- 阿里
- 阿拉善盟
- 阿拉尔
- 阿克苏
- 阿坝
- 道滘网站设计
- 惠城
- 惠阳网络公司
- 博罗
- 惠东
- 龙门
- 淡水
- 大埔
- 五华
- 紫金
- 龙川