网站架构

大型网站架构系列:缓存在分布式系统中的应用(一)

不问归期 提交于 2020-01-22 03:35:00
原文: 大型网站架构系列:缓存在分布式系统中的应用(一) 缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。 本文是缓存在分布式应用第一篇文章,介绍缓存的原理,缓存的分类,缓存的设计,CDN缓存(原理,架构参考和技术实践),反向代理缓存(原理,Squid架构实践和常用代理缓存之间的比较)。本文主要是自己的学习总结和网络文章摘录,供学习之用。 本次分享大纲 缓存概述 CDN缓存 反向代理缓存 分布式缓存 本地缓存 缓存架构示例 参考资料 分享总结 一、缓存概述 缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。 1.1缓存的原理 (1) 将数据写入/读取速度更快的存储(设备); (2) 将数据缓存到离应用最近的位置; (3) 将数据缓存到离用户最近的位置。 1.2缓存分类 在分布式系统中,缓存的应用非常广泛,从部署角度有以下几个方面的缓存应用。 (1) CDN缓存; (2) 反向代理缓存; (3) 分布式Cache; (4) 本地应用缓存; 1.3缓存媒介 常用中间件:Varnish,Ngnix,Squid,Memcache,Redis,Ehcache等; 缓存的内容:文件,数据,对象; 缓存的介质:CPU,内存(本地,分布式),磁盘(本地,分布式) 1.3缓存设计

【大型网站技术架构】读书笔记

余生长醉 提交于 2020-01-19 17:05:34
大型网站软件系统的特点: 1.高并发、高流量 2.高可用 3,海量数据 4.用户分布广泛,网络情况复杂 5.安全环境恶劣 6.需求快速变更,发布频繁 7.渐进式发展 大型网站的技术挑战 1.庞大的用户量 2.高并发的访问量 3.海量的数据 网站架构演化过程 高访问导致性能越来越差,海量数据导致存储空间不足,解决办法:将应用和数据分离 网站访问特点和现实世界的财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上,解决办法:将小部分数据缓存在内存中,以此来减少数据库的访问压力,提高整个网站的数据访问速度,改善数据库的写入性能 单一应用服务器能够处理的请求连接有限,在网站访问高峰期,应用服务器成为整个网站的瓶颈,解决办法:使用应用服务器集群改善网站的并发处理能力,持续增加服务器不断改善系统性能,实现系统的可伸缩性;通过负载均衡调度服务器进行请求分发 数据库读写分离 一部分读操作(未缓存或缓存过期)和全部的写操作需要访问数据库,用户到了一定规模,数据库因为负载压力过高成为网站瓶颈 数据库本身特性:主从热备,通过配置两台数据库主从关系,将数据同步更新至另一台服务器上,一般利用这个实现读写分离,改善数据库负载压力 为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据库读写分离对应用透明 使用反向代理和CDN加速网站响应 网站业务扩大

大型网站架构技术一览

依然范特西╮ 提交于 2020-01-19 01:51:06
大型网站架构技术一览 网站系统架构层次如下图所示: 1、 前端架构 前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。 (1) 浏览器优化技术; (2) CDN ; (3) 动静分离,静态资源独立部署; (4) 图片服务; (5) 反向代理; (6) DNS :域名服务,将域名解析成 IP 地址,利用 DNS 可以实现 DNS 负载均衡,配置 CDN 也需要修改 DNS ,使域名解析后指向 CDN 服务器。 2、 应用层架构 应用层是处理网站主要业务逻辑的地方 (1) 开发框架; (2) 页面渲染; (3) 负载均衡; (4) Session 管理; (5) 动态页面静态化; (6) 业务拆分; (7) 虚拟化服务器; 3、 服务层架构 提供基础服务,供应用层调用,完成网站业务。 (1) 分布式消息:利用消息队列机制,实现业务与业务、业务和服务之间的异步消息发送及低耦合的业务关系; (2) 分布式服务;提供高性能、低耦合、易复用、易管理的分布式服务,在网站实现面向服务架构( SOA ); (3) 分布式缓存:通过可伸缩的服务器集群提供大规模热点数据的缓存服务,是网站性能优化的重要手段; (4) 分布式配置; 4、 存储层架构 提供数据、文件的持久化存储访问与管理服务。 (1) 分布式文件; (2) 关系数据库; (3) NoSQL 数据库;

关于网站架构的几点看法

☆樱花仙子☆ 提交于 2020-01-18 15:40:27
作为一个WEB工作者,网站的架构是非常重要的,其实网站架构会有很多注意的地方,而我也不想说的那第繁琐,我只想说一说网站架构的一点思想,博客园里的很多同学说我写的文章太笼统,可是有些关于理论的东西也真的不是一言半语能写完的,还是那句老话,我只是开一个头,真正的细节还需要各位慢慢的领悟。 网站架构是一个很普遍的话题,但是又不是那么的简单,真正做一个网站架构师,需要很多经验的积累,网站的架构主要可以分为功能架构、页面架构、程序架构、运营架构,当然这只是我自己总结的,也不是根据任何书籍和资料来写的。 一、先谈一下功能架构,任何网站的建设一开始客户都会提到大致的功能,一般企业网站的功能比较简单,比如,博客园主要的功能就是发布文章,网站建设的初期主要就是先把功能架构说明给客户看,看看是不是客户所需要的,然后根据客户的反馈意见进行删改。 二、页面架构,也就是网站的前端建设,美工方面的东西,一些用户体验上的细节问题,例如web经验博客园主要是三个部分组成,上,左,右的结构,然后上面又分成BANNER和导航栏,这一点是通过网站美工出前台效果图的。 三、程序架构,按照客户的页面和功能要求考虑程序的编写和实现。 四、运营架构,这一部分是比较抽象的,也就是说无论你的功能多么强大,页面多么漂亮,程序运行多么的稳定,最终的目的也是为网站运营服务的,说到这里,又谈到了网络营销的问题了,我在这里还是依然只提个醒

【摘自大型网站技术架构书】负载均衡时session如何共享

感情迁移 提交于 2020-01-16 00:16:35
由于负载均衡服务器可能会将请求分发到集群任何一台服务器上,所以保证每次请求能够获得正确的session比单机时复杂。 集群环境下,session管理的主要几种手段 1.session复制 session复制是早期的企业级的使用比较多的一种服务器集群session管理机制。应用服务器开启web容器的session复制功能,在集群中的几台服务器之间同步session对象,使得每台服务器上都保存所有的session信息,这样任何一台宕机都不会导致session的数据丢失,服务器使用session时,直接从本地获取。 这种方式在应用集群达到数千台的时候,就会出现瓶颈,每台都需要备份session,出现内存不够用的情况。 2.session绑定 利用hash算法,比如nginx的ip_hash,使得同一个Ip的请求分发到同一台服务器上。 这种方式不符合对系统的高可用要求,因为一旦某台服务器宕机,那么该机器上的session也就不复存在了,用户请求切换到其他机器后么有session,无法完成业务处理。 3.利用cookie记录session(最普遍的做法) session记录在客户端,每次请求服务器的时候,将session放在请求中发送给服务器,服务器处理完请求后再将修改后的session响应给客户端。这里的客户端就是cookie。 利用cookie记录session的也有缺点

综合架构网站存储服务(NFS)

有些话、适合烂在心里 提交于 2020-01-13 13:35:05
文章目录 01.知识概述部分 02.知识回顾说明 03.存储服务概述介绍 存储服务器存在意义: 04.存储服务存储原理 1)存储数据原理 05.存储服务部署过程 服务端部署过程: 第一个里程:安装软件程序 第二个里程:编辑配置文件 第三个里程:创建存储目录并更改属主属组信息 第四个里程:编写本地解析配置文件 第五个里程:启动服务程序 客户端部署过程: 第一个里程:下载安装软件 第二个里程:挂载应用存储设备服务 06.存储服务配置文件 (参数) 常见存储问题: 作业: 知识梳理总结 01.知识概述部分 1)存储服务概述接收 2)存储服务存储原理 3)存储服务部署过程 4)存储服务配置文件 5)存储服务相关命令 6)存储服务客户端配置 mount 7)存储服务企业应用 02.知识回顾说明 1.备份服务常用的参数 (-avz) z 表示的是压缩同步数据 v 表示显示 a 归档模式 (rlptgoD) r 递归传输目录 l 备份软链接文件 L 软链接文件的真实数据信息 p 保持文件权限属性不变 P 显示数据传输进度信息 t 保持文件修改时间不变 g 保持文件属组信息不变 (root用户)、 o 保持文件属主信息不变 (root用户) D 备份设备文件信息 2 备份服务企业的应用 1.多模块备份数据 (数据隔离) [sa_backup] [dev_backup] 2.备份目录中创建子目录

电商平台架构2

强颜欢笑 提交于 2020-01-10 20:51:43
1.电商案例原因 分布式大型网站,目前看主要有几类: 1.大型门户,比如网易,新浪等; 2.SNS网站,比如校内,开心网等; 3.电商网站:比如阿里巴巴,京东商城,国美在线,汽车之家等。大型门户一般是新闻类信息,可以使用CDN,静态化等方式优化,开心网等交互性比较多,可能会引入更多的NOSQL,分布式缓存,使用高性能的通信框架等。 电商网站具备以上两类的特点,比如产品详情可以采用CDN,静态化,交互性高的需要采用NOSQL等技术。 因此,我们采用电商网站作为案例,进行分析。 2 电商网站需求 客户需求: 建立一个全品类的电子商务网站(B2C),用户可以在线购买商品,可以在线支付,也可以货到付款; (1)用户购买时可以在线与客服沟通; (2)用户收到商品后,可以给商品打分,评价; (3)目前有成熟的进销存系统;需要与网站对接; (4)希望能够支持3~5年,业务的发展; (5)预计3~5年用户数达到1000万; (6)定期举办双11,双12,三八男人节等活动; (7)其他的功能参考京东或国美在线等网站。 客户就是客户,不会告诉你具体要什么,只会告诉你他想要什么,我们很多时候要引导,挖掘客户的需求。好在提供了明确的参考网站。因此,下一步要进行大量的分析,结合行业,以及参考网站,给客户提供方案。 需求管理传统的做法,会使用用例图或模块图(需求列表)进行需求的描述

Lnmp架构部署动态网站环境.2019-7-3-1.2

耗尽温柔 提交于 2019-12-31 00:57:55
Nginx安装 一、安装准备   Pcre(Perl Compatible Regular Expressions,兼容正则表达式)安装pcre库是为了使Nginx支持HTTP Rewrite模块。 安装方法: 1、yum安装 [root@Lnmp tools]# yum install pcre pcre-devel -y 2、编译安装 wget http://sourceforge.net/projects/pcre/files/pcre/8.30/pcre-8.30.tar.gz tar zxf pcre-8.30.tar.gz cd pcre-8.30/ ./configure make && make install cd ../   安装Openssl yum install openssl openssl-devel -y 二、安装Nginx [root@Lnmp tools]# tar xf nginx-1.6.2.tar.gz  #解压nginx包 [root@Lnmp tools]# useradd nginx -s /sbin/nologin -M   #创建用户 [root@Lnmp tools]# cd nginx-1.6.2 [root@Lnmp nginx-1.6.2]# ./configure --user=nginx --group=nginx -

LAMP网站架构方案分析

一世执手 提交于 2019-12-30 23:30:38
 LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。   对于大流量、大并发量的网站系统架构来说,除了硬件上使用高性能的服务器、负载均衡、CDN等之外,在软件架构上需要重点关注下面几个环节:使用高性能的操作系统(OS)、高性能的网页服务器(Web Server)、高性能的数据库(Databse)、高效率的编程语言等。下面我将从这几点对其一一讨论。    操作系统   Linux操作系统有很多个不同的发行版,如Red Hat Enterprise Linux、SUSE Linux Enterprice、Debian、Ubuntu、CentOS等,每一个发行版都有自己的特色,比如RHEL的稳定,Ubuntu的易用,基于稳定性和性能的考虑,操作系统选择CentOS(Community ENTerprise Operating

LAMP网站架构方案分析

自作多情 提交于 2019-12-30 23:30:26
LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。  对于大流量、大并发量的网站系统架构来说,除了硬件上使用高性能的服务器、负载均衡、CDN等之外,在软件架构上需要重点关注下面几个环节:使用高性能的操作系统(OS)、高性能的网页服务器(Web Server)、高性能的数据库(Databse)、高效率的编程语言等。下面我将从这几点对其一一讨论。   操作系统   Linux操作系统有很多个不同的发行版,如Red Hat Enterprise Linux、SUSE LinuxEnterprice、Debian、Ubuntu、CentOS等,每一个发行版都有自己的特色,比如RHEL的稳定,Ubuntu的易用,基于稳定性和性能的考虑,操作系统选择CentOS(Community ENTerprise Operating System