网站架构

大型网站架构——百万PV

限于喜欢 提交于 2020-02-25 18:58:01
简介 PV即点击量,通常是衡量一个网络新闻频道或网站甚至一条网络新闻的重要指标。PV从某种程度上已经成为投资者衡量商业网站表现的最重要的尺度。 PV是一个访问者在24小时到底看了网站的几个页面。 案例描述 本案例设计采用四层模式实现,主要分为前端反向代理,web层,数据库缓存层和数据库层。前端反向代理层采用主备模式,web层采用集群模式,数据库缓存采用主备模式,数据库层采用主从模式。 案例环境 主:192.168.177.145 centos7-1 从:192.168.177.135 centos7-2 节点1:192.168.177.132 centos7-3 节点2:192.168.177.133 centos7-4 主服务器 从服务器 安装带有nginx rpm软件包的源 #rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/\ nginx-release-centos-7-0.el7.ngx.noarch.rpm 使用centos 默认仓库完成下面的安装 主 #yum install -y keepalived nginx #vim /etc/keepalived/keepalived.conf //从上修改三个参数 ! Configuration File for keepalived vrrp_script

【总结整理】《用户体验要素》-学习

浪子不回头ぞ 提交于 2020-02-23 04:25:23
对于企业外项目:用户体验为转化率铺垫,查看ROI(return on investment) 对于企业内项目:优点:1.帮助人们工作得更快 2.减少他们犯错的几率 用户体验做的好:为企业创造价值的项目(工具效率改进,会直接提升企业的整体生产力) 不好:变成资源消耗噩梦的项目 科技产品的可用性不够简单,会让人们觉得自己很笨,累的筋疲力尽,要求:简单、容易使用、不令人沮丧、没有不必要的复杂性 表现层:一系列网页 框架层:按钮、控件、照片、文本区的位置;框架层用于优化设计布局,以达到这些元素的最大的效果和效率:在你需要的时候能记得并找到购物车的按钮在哪里 结构层:比框架层更抽象,框架是结构的具体表达方式; 对比:框架决定了某个页面的交互元素的位置,而结构层用来设计用户如何到达某个页面,并且在他们做完事情以后能去什么地方, 框架层定义导航条上各类元素的排列方式,允许用户可以浏览不同的商品分类,结构层则确定哪些类别应该出现在哪里 范围层:结构层确定网站各种特性和功能最合适的组合方式,这些特性和功能就构成了网站的范围层。任何一个功能是否应该成为网站的功能之一,属于范围层要解决的问题; 战略层:网站范围基本上是由网站战略层所决定的,战略层包括了经营者想从网站得到什么,还包括用户从网站得到什么,比如电商:买卖商品;但是促销或者广告就不那么清晰; 五个层面:战略、范围、结构、框架、表现

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

血红的双手。 提交于 2020-02-21 01:45:13
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系 统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技 术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能 比拟的。      大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。      上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张性的角度来说说我的一些经验。      1、HTML静态化    其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是 最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点

linux企业实战----大型网站架构概述

假装没事ソ 提交于 2020-02-19 14:19:41
目录标题 1. 网站架构演化发展历程 2. 使用缓存服务器改善网站性能 3. 使用应用服务器集群改善并发处理能力 4. 数据库读写分离 5. 使用反响代理和cdn加速网站响应 6. 使用分布式文件系统和分布式数据库系统 7. 使用nosql和搜索引擎 8. 业务拆分 9. 分布式服务 1. 网站架构演化发展历程 2. 使用缓存服务器改善网站性能   网站访问的特点和二八定律一样:80%的业务访问及中在20%的数据上。所以如果把这一部分数据缓存在内存中,可以减少数据库的访问压力,提高整个网站的数据访问速度,改善数据库的写入性能。   网站使用的缓存可以分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布缓存服务器上的远程缓存。   本地缓存的访问快一些,但受应用服务器内存限制,缓存数据量有限,远程分布式缓存可以使用集群(n)的方式,步数大内存的服务器作为专门的缓存服务器,理论上做到部首内存容量的限制的缓存服务。 缓存技术:   内容分发网络(CDN)反向代理   本地缓存 分布式缓存   使用前提:1. 数据访问热点不均匀 2. 是数据在某个时间段内有效,不会很快过期 3. 使用应用服务器集群改善并发处理能力   使用缓存后,数据访问压力得到有效的环节,但是单一应用服务器能够处理的请求链接有限,在网站高峰期,应用服务器称为整个网站的瓶颈。   使用集群是网站解决高并发

大型网站的架构概述

走远了吗. 提交于 2020-02-19 11:38:20
大型网站的特点 以用户为中心,用户多,分布广泛 流量大,并发高,数据量大 安全环境恶劣,容易受到网络攻击 需求多,频繁发布 系统从小到大,渐进发展 大型网站的架构目标 高性能:提供快速访问体验(响应时间短,兵法处理能力强,吞吐量高) 高可用:网站服务一直可以正常访问(负载均衡,冗余备份) 可伸缩:可通过增加或减少服务器来提高或降低处理能力 扩展性:方便的通过新增/移除方式,增加/减少新的功能/模块 安全性:提供网站安全访问和数据加密,安全存储等策略 大型网站的架构演变历程 1.所有的应用服务器,数据库和文件都在同一台服务器上。 .在网站刚刚开始的时候,并没有很多的访问量,所以只需要一台服务器就足够了,这时候的网站架构如下图所示: 2.进行数据和应用的分离 随着网站的业务发展,增加的访问导致性能降低,增加的数据导致存储空间不足,这时候就需要进行数据和应用的分离: 分离后的服务器: 应用服务器:需要处理大量的业务逻辑,所以需要更强大的CPU; 文件服务器:要存储更多的静态文件,所以需要更大的硬盘; 数据库服务器:需要快速磁盘检索和数据缓存,所以需要更快的硬盘和更大的内存; 应用和数据的分离,提高了网站的并发处理能力和数据存储空间,使网站的性能得以改善。 3.使用缓存改善网站性能 网站的数据访问满足二八定律,即80%的业务访问集中在20%的数据上,例如微博热搜

网站架构演变

五迷三道 提交于 2020-02-18 22:55:33
系统架构演化历程-初始阶段架构 <img data-rawheight="367" data-rawwidth="516" src="https://pic4.zhimg.com/13bd5a6612620fdf51c8987ab3eb1273_b.jpg" class="origin_image zh-lightbox-thumb" width="516" data-original="https://pic4.zhimg.com/13bd5a6612620fdf51c8987ab3eb1273_r.jpg"> 初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗称为LAMP 特征: 应用程序、数据库、文件等所有的资源都在一台服务器上。 描述: 通常服务器操作系统使用linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用Mysql,汇集各种免费开源软件以及一台廉价服务器就可以开始系统的发展之路了。 系统架构演化历程-应用服务和数据服务分离 <img data-rawheight="408" data-rawwidth="510" src="https://pic2.zhimg.com/c2ff4e51eec15231b2f69fe6a4038239_b.jpg" class="origin_image zh

《大型网站技术架构:核心原理与案例分析》笔记

情到浓时终转凉″ 提交于 2020-02-10 02:59:33
目录 · 大型网站软件系统的特点 · 大型网站架构演化发展历程 · 初始阶段的网站架构 · 需求/解决问题 · 架构 · 应用服务和数据服务分离 · 需求/解决问题 · 架构 · 使用缓存改善网站性能 · 需求/解决问题 · 架构 · 使用应用服务器集群改善网站的并发处理能力 · 需求/解决问题 · 架构 · 数据库读写分离 · 需求/解决问题 · 架构 · 使用反向代理和CDN加速网站响应 · 需求/解决问题 · 架构 · 使用分布式文件系统和分布式数据库系统 · 需求/解决问题 · 架构 · 使用NoSQL和搜索引擎 · 需求/解决问题 · 架构 · 业务拆分 · 需求/解决问题 · 架构 · 分布式服务 · 需求/解决问题 · 架构 · 大型网站架构演化心得 · 大型网站架构模式 · 综述 · 分层 · 概念 · 目的 · 举例 · 分割 · 概念 · 目的 · 举例 · 分布式 · 概念 · 目的 · 缺点 · 举例 · 集群 · 概念 · 目的 · 缓存 · 概念 · 目的 · 举例 · 异步 · 概念 · 目的 · 冗余 · 概念 · 目的 · 举例 · 自动化 · 目的 · 举例 · 安全 · 举例 · 大型网站核心架构要素 · 性能 · 网站性能测试 · 不同视角下的网站性能 · 性能测试指标 · 性能测试方法 · 性能测试报告 · Web前端性能优化 ·

大型分布式电商系统架构演进史?

妖精的绣舞 提交于 2020-02-09 15:26:11
文章目录 概述 作者简介 一、大型分布式网站架构技术 1、大型网站的特点 2、大型网站架构目标 3、大型网站架构模式 4、高性能架构 5、高可用架构 6、可伸缩架构 7、可扩展架构 8、安全架构 9、敏捷性 10、大型架构举例 二、大型电商网站系统架构演变过程 1、最开始的网站架构 2、应用、数据、文件分离 3、利用缓存改善网站性能 4、使用集群改善应用服务器性能 5、数据库读写分离和分库分表 6、使用CDN和反向代理提高网站性能 7、使用分布式文件系统 8、使用NoSQL和搜索引擎 9、将应用服务器进行业务拆分 10、搭建分布式服务 三、一张图说明电商架构 四、大型电商网站架构案例 概述 本文是学习大型分布式网站架构的技术总结。对架构一个高性能、高可用、可伸缩及可扩展的分布式网站进行了概要性描述,并给出一个架构参考。文中一部分为读书笔记,一部分是个人经验总结,对大型分布式网站架构有较好的参考价值。 作者简介 烂皮猪,十余年工作经验,曾在Google等外企工作过几年,精通Java、分布式架构,微服务架构以及数据库,最近正在研究大数据以及区块链,希望能够突破到更高的境界 一、大型分布式网站架构技术 1、大型网站的特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为中心 免费服务,付费体验 2

ASP.NET Core搭建多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】

帅比萌擦擦* 提交于 2020-02-08 20:53:26
2020/02/03, ASP.NET Core 3.1, VS2019, Obfuscar 2.2.25 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【15-扩展之使用Obfuscar混淆加密保护代码】 使用Obfuscar混淆加密保护代码,防止他人使用ILSpy等工具反编译查看到源码 文章目录 此分支项目代码 本章节介绍了使用Obfuscar混淆加密保护代码,防止他人使用ILSpy等工具反编译查看到源码,可以一定程度上防护自己的代码 Obfuscar是开源免费的混淆加密工具,支持.NET Framework和.NET Core应用程序, 官方网站 、 github项目地址 、 官方文档 使用 添加包引用 向 MS.WebApi 应用程序添加包引用: <ItemGroup> <PackageReference Include="Obfuscar" Version="2.2.25"> </ItemGroup> 添加混淆配置文件 向 MS.WebApi 应用程序添加xml配置文件,取名为obfuscar.xml: 右击该xml文件属性,选择 始终复制 到输出目录: 编辑obfuscar.xml配置文件: <?xml version='1.0'?> <Obfuscator> <Var name="InPath" value="." /> <Var

ASP.NET Core搭建多层网站架构【14-扩展之部署到IIS】

风格不统一 提交于 2020-02-08 19:29:51
2020/02/03, ASP.NET Core 3.1, VS2019, IIS 10, dotnet-hosting-3.1.1-win.exe 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【14-扩展之部署到IIS】 在Windows上将ASP.NET Core网站部署到IIS 文章目录 本章节由于并未对代码做出改动,仅添加了发布配置文件,所以没有上传代码分支(下一章节中可以看到本章节添加的发布配置文件) 本章节介绍了在Windows上将ASP.NET Core网站部署到IIS,部署环境是 Windows 10.0.18363 (企业版) 添加IIS功能 在控制面板-程序和功能中,添加IIS: 勾选选项默认即可 我这里是win10企业版,winserver服务器也是类似的开启该功能 安装dotnet-hosting 官网下载安装dotnet-hosting, 下载页面 先选取对应的.NET Core版本,然后找到Hosting Bundle下载,下载下来安装即可 编译项目 对着 MS.WebApi 应用程序右击,选择 发布 : 选择文件夹 我这里保持了默认bin\Release\netcoreapp3.1\publish\文件夹 点击 高级 ,进一步配置: Release 配置,部署模式为 框架依赖 ,目标运行时为 可移植 ,勾选