大型网站技术架构
大型网站技术架构第1篇 概述大型网站架构演化大型网站架构演化发展历程初始阶段的网站架构小型网站最开始没有太多人访问,只需要一台服务器就可以了。
应用程序、数据库、文件等所有的资源都在一台服务器上。
应用服务和数据服务分离随着网站业务发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这时需要将应用和数据分离。应用和数据分离后整个网站使用三台服务器:应用服务器、文件服务器和数据库服务器。这三台服务器对硬件资源的要求不同,
应用服务器需要处理大量的业务逻辑,所以需要更强大的CPU;
数据库服务器需要快速磁盘检索和数据缓存,所以需要更快的硬盘和更大的内存;
文件服务器需要存储大量用户上传的文件,所以需要更大的硬盘。
随着用户逐渐增多,数据库压力太大会导致访问延迟,影响整个网站的性能。
使用缓存改善网站性能网站访问特点也遵循二八定律:80%的业务访问集中在20%的数据上。
淘宝买家浏览的商品集中在少部分成交数多、评价良好的商品上;
百度搜索关键词集中在少部分热门词汇上;
只有经常登录的用户才会发微博、看微博,这部分用户只占总用户数的一小部分 ...
设计模式
设计模式三种类型,23种
创建型
单例模式、抽象工厂模式、工厂模式、原型模式、建造者模式
结构型
适配器模式、桥接模式、装饰者模式、组合模式、外观模式、享元模式、代理模式
行为型
模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、责任链模式
UML简介UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。
类图类图是静态视图的图形表达方式,表示声明静态的模型元素,如:类、类型和其内容,以及它们的相互关系。也就是说,类图是用来描述类以及类与类之间关系的一种UML图
类图的基本表示
类名定义
没有特殊的要求,任何合法的名称都可以。
属性定义的基本语法
属性用来描述类所具有的特征。描述属性的语法格式为:
可见性属性名:类型名=初值
对于可见性:+表示public,-表示private,#表示protected,没有符号就表示默认的可见性。
-age:int=20
-name:String
操作定义的基本语法
操作用来描述类能干些什么事情,也就是我们通常说的方法。描述操作的语 ...
Kafka权威指南
Kafka权威指南序
Kafka最初是LinkedIn的一个内部基础设施系统。我们发现,虽然有很多数据库和系统可 以用来存储数据,但在我们的架构里,刚好缺一个可以帮助处理持续数据流的组件。在开 发Kafka之前,我们实验了各种现成的解决方案,从消息系统到日志聚合系统,再到 ETL 工具,它们都无法满足我们的需求。
我们认为Kafka是一个流平台:在这个平台上可以发布和订阅数据流,并把它们保存起来、进行处理。
Kafka有点像消息系统,允许发布和订阅消息流(类似于ActiveMQ、RabbitMQ等)。