Web 系统架构一般组成

负载层技术
负载分配层,是单指利用软件实现的计算机系统上的狭义负载均衡。它是根据业务形态设计一种架构方式,将来自外部客户端的业务请求分担到每一个可用的业务节点上 。
1.用户终端不只包括类似于PC 、 Android 手机 、平板电脑这样的终端设备 。还包括向服务节点发送请求的任何其他服务节点
2.不同的业务处理节点有两个层面的含义:
1)多次同一种类型的请求可以分配到同一个业务系统的不同节点上进行处理 ;
2)“用户终端”多次不同类型的请求,会分派到不同的业务系统 的不同节点上进行处理 。
负载方案:
• 独立 的 Nginx 负载或 HAProxy 方案
• LVS ( DR ) + Nginx 方案
• DNS 轮询+ LVS + Nginx 方案
• 智能 DNS ( DNS 路由) + LVS + Nginx 方案
Nginx只能处理 TCP/IP 协议之上的应用层 HTTP 协议,如果要处理 TCP/IP 协议,则要安装第三方的 TCP-Proxy-Module 模块。
直接在 TCP/IP 层负载的方案 , 是使用 HAProxy
业务层技术
在中大型业务系统中,这些业务是不可能独立存在的, 一般的设计要求都会涉及子系统间脱辑 : 即 X1系统除了知晓底层支撑系统的存在(例如用户权限系统),并不需要知道和它逻辑对等的 X2 系统的存在就可以工作。
相关技术:
• Thrift RPC 技术/dubbo RPC技术
• 保证消息可达性的消息队列技术
存储层技术
对 MySQL 聚集索引和非聚集索引理解不够透彻,导致常常出现 Table Scan拖慢整个顶层系统的性能;
不理解操作系统下的文件系统格式导致错选 EXT3 、 EXT4 、 XFS;
不清楚 Linux Page Cache 对文件读/写的工作原理,所以不能合理利用代码进行批量写
Web 系统架构一般组成的更多相关文章
- 浅谈大型web系统架构
动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应用系统通常与数据库系统. ...
- 转:浅谈大型web系统架构
浅谈大型web系统架构 动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应 ...
- PHP-学习大规模高并发Web系统架构及开发推荐书籍
以下书籍内容涵盖大型网站开发中几个关键点:高可用.高性能.分布式.易扩展.如果想对大规模高并发Web系统架构及开发有很系统的学习,可以阅读以下书籍,欢迎补充! 一.<Linux企业集群—用商用硬 ...
- 【ZZ】浅谈大型web系统架构 | 菜鸟教程
浅谈大型web系统架构 http://www.runoob.com/w3cnote/large-scale-web-system-architecture.html
- 设计高性能大并发WEB系统架构注意点
设计高性能大并发WEB系统架构注意点 第01:大型架构的演进之路第02(上):分布式缓存第02(下):分布式缓存第03:分布式消息队列第04:分布式数据存储第05:分布式服务框架第06:高性能系统架构 ...
- Java Web系统架构概览
大型网站系统架构的演进都是随着业务增长不断演进,所有的出发点都是为了满足业务需求.最初访问量下,功能简单时,单体软件可以解决所有问题:后来访问量逐渐增大,功能愈加丰富,此时单体软件的架构逐渐成为开发和 ...
- 千万pv大型web系统架构,学习从点滴开始
架构,刚开始的解释是我从知乎上看到的.什么是架构?有人讲, 说架构并不是一 个很 悬 乎的 东西 , 实际 上就是一个架子 , 放一些 业务 和算法,跟我们的生活中的晾衣架很像.更抽象一点,说架构其 ...
- 大型web系统架构详解
(如果感觉有帮助,请帮忙点推荐,添加关注,谢谢!你的支持是我不断更新文章的动力.本博客会逐步推出一系列的关于大型网站架构.分布式应用.设计模式.架构模式等方面的系列文章) 动态应用,是相对于网站静态内 ...
- [置顶] 浅谈大型web系统架构
转载原文:http://blog.csdn.net/dinglang_2009/article/details/6863697 分类: 大规模Web 2.0架构 2011-10-11 18:27 12 ...
- 浅谈大型web系统架构(一)
目录 Web前端系统 负载均衡系统 数据库集群系统 缓存系统 分布式存储系统 分布式服务器管理系统 代码发布系统 动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl. ...
随机推荐
- jdbc连接2(不可以注入)
public void login1(String username, String password) throws ClassNotFoundException, SQLException { / ...
- POJ 1036
#include<iostream> #include<algorithm> #define MAXN 205 using namespace std; struct node ...
- easyUI的分页,只显示第X 共Y页。改为显示 第X 页 共Y页
如下图,easyUI的分页,只显示第X 共Y页. 需求需要显示 第X 页 共Y页. 解决办法:在easyui-lang-zh_CN.js更改以下代码,即可.也就是在 “共{pages}页”前面加个 “ ...
- 用Lingo求解线性规划问题
第一步:输入目标条件和约束条件.每行以分号隔开.然后点击工具栏上的Solve按钮,或Lingo菜单下的Solve子菜单. 第二步:检查report中的结果. 默认情况下,Lingo不进行灵敏度分析. ...
- 编译Qt-mingw使用的opencv
set path=D:\dev\IDE\Qt5.7.0\Tools\mingw530_32\bin;%path% cd build_mingw530_32 cmake -G "MinGW M ...
- IntelliJ IDEA使用心得之问题篇;
在使用IDEA的时候,难免会遇到一些问题,总结下来,一是备忘,而是分享. 1.IDEA代码编辑区无法编辑? 当系统时间被调整到当前时间以前时会导致IDEA无法编辑,有3中解决方案:1)重启IDEA:( ...
- Redis configuration
官方2.6配置如下: # Redis configuration file example # Note on units: when memory size is needed, it is pos ...
- Java线程池,你了解多少?
一.前言 随着业务的发展,单线程已经远远不能满足,随即就有多线程的出现.多线程虽然能解决单线程解决不了的事情,但是它也会给你带来额外的问题.比如成千上万甚至上百万的线程时候,你系统就会出现响应延迟.卡 ...
- IOS开发常见第三方总结
链接](https://github.com/languages/Objective-C/most_watched) * [three20](https://github.com/facebook ...
- UIKit 框架之Bar、Controller
UIKit框架中有各种Bar,UITabBar.UINavigationBar.UIToolbar.Bar对应的就有一些Item,tabBarItem.navigationItem.toolbarIt ...