架构设计
平静大海
这个作者很懒,什么都没留下…
展开
-
网站性能优化 - 数据库及服务器架构篇
本文转载自 我先前曾写过三篇有关网站系统、ASP.NET 性能优化的文章,分别从 SQL 语句、数据库设计、ASP.NET 功能、IIS 7 的套件,来探讨此一性能议题。本帖算是系列作的第四篇,整理了一些我看过的书籍和文章,改从「负载均衡、服务器架构、数据库扩展」的角度,提出一些性能优化的建议,以供有建设中大型网站需求的网友们作为参考。小弟我先前写过的三篇帖子:(一) 30 分钟快转载 2014-06-24 11:20:21 · 918 阅读 · 0 评论 -
架构高性能网站秘笈(二)——动态内容缓存
什么是动态内容缓存?浏览器向服务器发送请求后,服务器会根据浏览器的要求做相应的处理(如:数据库操作),然后将处理后的结果注入JSP页面生成HTML,最后将生成的HTML返回给浏览器显示。我们知道,数据库读取操作是非常耗时的,如果能将每次请求中的数据库处理时间去掉,那服务器的相应速度将会大幅提升。要实现这一点,我们就需要将常用的HTML页面事先生成好,当用户发出请求时,服务器只需从缓存中取出即可转载 2016-04-12 13:43:12 · 623 阅读 · 0 评论 -
架构高性能网站秘笈(三)——浏览器缓存
什么是浏览器缓存?在《架构高性能网站秘笈(二)——动态内容缓存》中我们知道,当不同用户请求相同数据时,动态内容缓存能够避免服务器的重复计算,从而降低用户的等待时间。但如果是同一个用户请求相同的数据,即使服务器能避免重复计算,但仍需将重复的数据传递给浏览器。若使用浏览器缓存,则同一个用户请求相同的数据时,浏览器只需从自己本地读取,无需从服务器上获取。从而大大降低用户的等待时间,减少了服务器的压力转载 2016-04-12 13:43:47 · 388 阅读 · 0 评论 -
架构高性能网站秘笈(五)——Web组件分离
什么是Web组件?网站的静态网页HTML、JavaScript脚本、CSS样式、图片、动态数据称为网站的Web组件。也就是说,一个Web应用由各种各样的Web组件构成。 为什么要进行Web组件分离?一个网站的Web组件往往有各自的特点,比如:HTML页面属于静态文件,当用户请求一个HTML页面的时候Web服务器会进行IO操作,读取HTML文件;而用户请求动态数据的时候IO操作会转载 2016-04-12 13:45:27 · 771 阅读 · 0 评论 -
架构高性能网站秘笈(六)——构建数据缓冲区
到此为止,一共介绍了四种服务器性能优化的方法,分别是:动态内容缓存、浏览器缓存、反向代理缓存、Web组件分离。我们发现在这四种方法中,“缓存”占了大头!确实如此,“缓存”是服务器性能优化的核心思想,我们提出的各种优化方法本质上只是把“缓存”用在了不同的地方,并根据使用位置的不同,个性化定制缓存的使用方法。接下来又要介绍一种缓存的新用法——数据缓冲区。之前介绍的动态内容缓存、浏览器缓转载 2016-04-12 13:46:19 · 433 阅读 · 0 评论 -
防重复提交
转自:http://patrick002.iteye.com/blog/2197521看到一篇关于防重复提交的文章,记录一下:#防重复处理总结##背景在业务开发中,我们常会面对防止重复请求的问题。当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害。重复请求的后果在交易系统、售后维权,以及支付系统中尤其严重。前台操作的抖动,快速操作,网络通信或转载 2017-03-02 10:13:05 · 773 阅读 · 0 评论 -
JAVA设计模式--单例模式
单例设计模式Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点。核心知识点如下:(1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。(2) 在其内部产生该类的实例化对象,并将其封装成private static类型。(3) 定义一个静态方法返转载 2017-03-03 15:01:52 · 251 阅读 · 0 评论 -
数据库Sharding的基本思想和切分策略
本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 一、基本思想 Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果转载 2017-10-14 20:24:35 · 313 阅读 · 0 评论 -
架构高性能网站秘笈(一)——了解衡量网站性能的指标
服务器如何发送数据?服务器程序将需要发送的数据写入该程序的内存空间中; 服务器程序通过操作系统的接口向内核发出系统调用; 系统内核将用户态内存空间中的数据复制到内核缓冲区中去,然后通知网卡过来取;此后CPU转而做其他处理; 网卡到CPU指定的内核缓冲区中将数据复制到网卡缓冲区中; 网卡将字节转换成二进制位,再以电信号的形式输出至网络。 注意:数据在计算机内部的复制是按照总线的宽度来复制转载 2016-04-12 13:42:18 · 495 阅读 · 0 评论 -
Rabbitmq集群高可用测试
Rabbitmq集群高可用RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡。Rabbit模式大概分为以下三种:单一模式、普通模式、镜像模式单一模式:最简单的情况,非集群模式。没什么好说的。普通模式:默认的集群模式。对于Queue来说,消息实体只存在于其中一个节点,A、B两个节点仅有转载 2016-03-30 17:34:00 · 2434 阅读 · 0 评论 -
大型网站技术架构
架构演变第一步:物理分离webserver和数据库最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管了一台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统的压力越来越高,响应速度越来越慢,而这个时候比较明显的是数据库和应用互相影响,应用出问题了转载 2014-06-23 14:02:09 · 873 阅读 · 0 评论 -
专家级解说缓存服务器负载均衡概念
谈到负载均衡大家肯定都能理解它的作用,那就是对大量的数据进行平均分配。那么在缓存服务器中,我们同样也需要负载均衡的技术。下面我们就听听专家对缓存服务器负载均衡问题的看法和研究。根据一些专家的调查分析,发现企业在使用数据库的时候,90%以上主要用来查询。有些企业这个比例甚至更高。也就说,用户对数据库的操作,其实更新操作占的比例很少。大部分的操走都只是查询操作。如一些论坛,大部分用户只会看贴,而不转载 2014-06-23 14:08:48 · 740 阅读 · 0 评论 -
大型高性能ASP.NET系统架构设计
大型高性能ASP.NET系统架构设计 大型动态应用系统平台主要是针对于大流量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑,以保证网站应用的平稳运行。 大型动态应用系统又可分为几个子系统:Web前端系统负载均衡系统数据库集群系统缓存系统分布式存储系统分布式服务器管理系统代码分发系统转载 2014-06-24 11:53:01 · 1825 阅读 · 0 评论 -
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
目录(?)[+]版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分转载 2015-05-10 16:02:15 · 1207 阅读 · 0 评论 -
大型分布式数据库集群的研究
1、为什么要设计成分布式数据库,数据为什么要分区?当数据量很大的时候,即使服务器在没有任何压力的情况下,某些复杂的查询操作都会非常缓慢,影响了最终用户的体验。在大数据量下对数据库的装载与导出,备份与恢复,结构的调整,索引的调整等都会让数据库停止服务或者高负荷运转很长时间,影响了数据库的可用性和可管理性。这个时候靠提升服务器的硬件配置是起不到作用的,只有靠分区把数据分成更小的转载 2015-08-20 17:51:58 · 4089 阅读 · 0 评论 -
亿级Web系统搭建——单机到分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决。 Web负载均衡 Web负载均衡(Load Balancing),简单地说就是给我转载 2015-08-21 10:29:14 · 829 阅读 · 0 评论 -
Windows下本地RabbitMQ服务的安装(V3.01)
当然这些内容页可以通过RabbitMQ官方网站获得。RabbitMQ安装:一、RaibbitMQ服务器安装1. 准备工作。如果之前安装过RabbitMQ软件,若想重新安装,必须先把之前的RabbitMQ相关软件卸载。2. 安装ERLANG语言包。首先到http://www.erlang.org/download.html这个页面下载 Erlang Windo转载 2016-03-30 15:06:54 · 9105 阅读 · 0 评论 -
Rabbitmq的使用及Web监控工具使用
一、文档资料 1、官方网站:http://www.rabbitmq.com/ 2、安装教程:http://www.rabbitmq.com/install-windows.html 二、安装指南 1、下载并按照OTP(必须在安装RabbitMQ Server前安装):http://www.erlang.org/downl转载 2016-03-30 15:13:11 · 7408 阅读 · 0 评论 -
Spring MVC +Spring + Mybatis 构建分库分表总结 SSM搭建以及分库分表的实现
分库分表在小型公司很少能遇到也很少使用,毕竟数据量没有那么大,当数据量大,所有数据都压在一张表时,如果单从数据库的角度考虑是可以分库分表处理来存储数据。分库分表 顾名思义就是根据查询条件动态的去获取数据所在的库和表的位置.例如一个系统有唯一的标识userNum,所有路由规则都可以根据userNum做库表的定位工作.本文测试用3个库5个表做测试.三个库book_00,book_01,book_0转载 2017-10-17 14:00:26 · 1274 阅读 · 0 评论