《大型网站技术架构》——第六章 永无止境:网站的伸缩性架构

网站的伸缩性是指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。 大型网站: 大量用户,大量访问 功能庞杂,产品众多 网站需要部署大量的服务器 大型网站的渐进式演化过程 网站架构的伸缩性设计: 根据功能进行物理分离实现伸缩 单一服务器处理所有服务...

2018-12-16 21:28:18

阅读数:15

评论数:0

《大型网站技术架构》——第五章 万无一失:网站的高可用架构

网站可有效访问的特性。(不要挂) 硬件故障是常态,网站的高可用架构设计的主要目的就是保证服务器硬件故障时服务依然可用、数据依然保存并能够被访问。 主要手段是数据和服务的冗余备份及失效转移。 大型网站的分层架构及物理服务器的分布式部署使得位于不同层次的服务器具有不同的可用性特点。关闭服务或者服务器宕...

2018-12-15 23:17:21

阅读数:8

评论数:0

《大型网站技术架构》——第四章 瞬时响应:网站的高性能架构

网站性能是客观的指标,可以具体体现到响应时间、吞吐量等技术指标,同时也是主观的感受。 用户视角的网站性能 在实践中,使用一些前端架构优化手段,通过优化页面HTML式样、利用浏览器端的并发和异步特性、调整浏览器缓存策略、使用CDN服务、反向代理等手段,使浏览器尽快地显示用户感兴趣的内容、尽可能近地获...

2018-12-15 21:06:41

阅读数:399

评论数:0

《Java多线程编程实战》—— 第11~14章

第11章 Serial Thread Confinement(串行线程封闭)模式 将多个并发的任务存入队列实现任务的串行化。唯一的工作者线程。 避免加锁。本质是使用一个开销更小的锁替换一个可能的开销更大的锁。 第12章 Master-Slave(主仆)模式 将一个任务分解为若干个语义等同的子任务,...

2018-12-11 18:49:36

阅读数:22

评论数:0

《Java多线程编程实战》—— 第10章 Thread Specific Storage(线程特有存储)模式

Thread Specific Storage模式:不共享变量,不使用锁。 不同线程使用统一的访问接入点可以获取线程特有的实例。 弊端: 隐藏了系统结构,隐藏了应用中各个对象之间的关系,从而使应用更加难于理解。 鼓励使用全局对象。 常见使用场景 需要使用非线程安全对象,但不希望引入锁 使用线程安...

2018-12-10 20:20:09

阅读数:24

评论数:0

《多处理器编程的艺术》读书笔记——第二章 互斥

临界区:某个时刻仅能被一个线程执行的代码段。 良构的线程: 1.一个临界区只和一个唯一的Lock对象相关联 2.线程准备进入临界区时调用该对象的lock()方法 3.当线程离开临界区时调用unlock()方法 一个好的锁算法应该满足哪些特性: 互斥:不同线程的临界区之间没有重叠。(安全特性) 无死...

2018-12-03 20:49:31

阅读数:30

评论数:0

《多处理器编程的艺术》读书笔记——第一章 引言

共享存储器通信方式下的多处理器编程技术。 可计算性理论:理解异步并发环境中的可计算问题。 安全性:不好的事情绝不会发生。 活性:一个特定的好的事件一定会发生。 确保一个时刻只允许一个线程执行特定代码段的问题称为互斥问题。 啤酒瓶罐的例子——中断——wait()和notifyAll() 旗子的例子 ...

2018-12-03 20:05:58

阅读数:24

评论数:0

《大型网站技术架构》——第三章 大型网站核心架构要素

系统的各个重要组成部分及其关系构成了系统的架构。 系统功能 性能 响应 很多时候网站性能问题是网站架构升级优化的触发器。 浏览器端:浏览器缓存、页面压缩、合理布局页面、减少Cookie传输 CDN:将网站静态内容分发至离用户最近的网络服务商机房 反向代理服务器:缓存热点文件 应用服务器端:服务器...

2018-12-02 22:47:49

阅读数:1959

评论数:0

《大型网站技术架构》——第二章 大型网站架构模式

分层 横向维度 上层对下层的依赖和调用 合理规划层次边界和接口 禁止跨层次的调用及逆向调用 分割 纵向切分 分布式 将不同模块部署在不同的服务器上,通过远程调用协同工作。 问题: 调用通过网络,对性能造成严重影响 服务器越多,宕机概率越大,使网站可用性降低 数据一致性、分布式事务难以保证 网站依...

2018-12-02 22:00:27

阅读数:1919

评论数:1

《Java多线程编程实战》—— 第9章 Thread Pool(线程池)模式

一个系统中的线程相对于其所要处理的任务而言,是一种非常有限的资源。线程不仅在执行任务时需要消耗CPU时间和内存等资源,线程对象(Thread实例)本身以及线程所需的调用栈(Call Stack)也占用内存,并且Java中创建一个线程往往意味着JVM会创建相应的依赖于宿主机操作系统的本地线程(Nat...

2018-11-28 20:40:15

阅读数:22

评论数:0

《Java多线程编程实战》—— 第8章 Active Object(主动对象)模式

Active Object模式是一种异步编程模式。(跟Promise模式有什么区别呢?) 通过对方法的调用与方法的执行进行解耦来提高并发性。 类图 当Active Object模式对外暴露的异步方法被调用时,与该方法调用相关的上下文信息,包括被调用的异步方法名、参数等,会被封装成一个对象。该方法请...

2018-11-26 20:23:04

阅读数:23

评论数:0

《Java多线程编程实战》——第7章 Producer-Consumer(生产者/消费者)模式

Producer-Consumer模式的核心是通过通道对数据(或任务)的生产者和消费者进行解耦,从而使二者的处理速率相对来说互不影响。 类图 BlockingQueueChannel: 当队列满时,将当前线程挂起直到队列非满 当队列为空时,将当前线程挂起直到队列非空 通道积压的常见解决方法: ...

2018-11-26 19:19:45

阅读数:16

评论数:0

《大型网站技术架构》——第一章 大型网站架构演化

初始阶段的网站架构 应用程序、数据库、文件等所有等资源都在一台服务器上。 应用服务和数据服务分离 三台服务器:应用服务器、文件服务器和数据库服务器。 三台服务器对硬件资源对要求各不相同: 应用服务器需要处理大量的业务逻辑,因此需要更快更强大的CPU 文件服务器需要存储大量用户上传的文件,因此需要...

2018-11-25 23:56:16

阅读数:801

评论数:0

《Java多线程编程实战》——第6章 Promise(承诺)模式

开始一个任务的执行,并得到一个用于获取该任务执行结果的凭据对象,而不必等待该任务执行完毕就可以继续执行其他操作。等到需要该任务的执行结果时,再调用凭据对象的相关方法来获取。 类图 获取执行结果时,可能由于异步任务尚未执行完毕而阻塞。 参考:Java并发编程:Callable、Future和Futu...

2018-11-23 18:30:26

阅读数:22

评论数:0

《Java多线程编程实战》——第5章 Two-phase Termination(两阶段终止)模式

Two-phase Termination模式通过将停止线程分解为准备阶段和执行阶段两个阶段,提供了一种通用的优雅停止线程的方法。 准备阶段:通知目标线程准备进行停止。 List item 设置标志变量。 调用目标线程的interrupt方法。 对于能够对interrupt方法调用做出响应的方法...

2018-11-22 21:04:33

阅读数:10

评论数:0

《Java多线程编程实战》——第4章 Guarded Suspension(保护性暂挂)模式

一个线程等待另一个线程完成一定的操作,才能继续运行。

2018-11-22 20:52:03

阅读数:15

评论数:0

《Java多线程编程实战》——第3章 Immutable Object(不可变对象)模式

通过使用对外可见的状态不可变的对象,无需额外的同步访问控制。既保证了数据一致性,又避免了同步访问控制所产生的额外开销和问题,也简化了编程。 状态不可变的对象:对象一经创建,其对外可见的状态就保持不变,如String和Integer。 Immutable Object模式:将现实世界中状态可变的实体...

2018-11-17 17:08:12

阅读数:29

评论数:0

《Java多线程编程实战》——第2章 设计模式及其作用

设计模式与三十六计 多线程设计模式简介 不使用锁的情况下保证线程安全 Immutable Object(不可变对象)模式 Thread Specific Storage(线程特有存储)模式 Serial Thread Confinement(串行线程封闭)模式 优雅地停止线程 Two-pha...

2018-11-17 16:01:14

阅读数:11

评论数:0

《MySQL技术内幕:InnoDB存储引擎》——第3章 文件

参数文件 mysql --help | grep my.cnf mysql> show variables;//查看参数 mysql> set read_buffer_size = 524288;//设置会话动态参数 mysql&...

2018-11-17 14:53:11

阅读数:7

评论数:0

《MySQL技术内幕:InnoDB存储引擎》——第2章 InnoDB存储引擎

mysql> show engine innodb status;//查看innodb存储引擎状态 mysql> show variables like 'innodb_version';//查看innodb存储引擎版本 mysql&...

2018-11-17 14:52:09

阅读数:9

评论数:0

提示
确定要删除当前文章?
取消 删除