容器容器是一个大包了应用和服务的环境,是一个轻量级的虚拟机。每一个容器都由一组特定的应用和必要的依赖库组成。 创建容器 docker create命令 docker run命令 docker create创建的容器处于停止状态,docker run不仅创建了容器而且启动了容器(相当于docker create & docker run)。 代码示例: docker ps -a docke ...
可伸缩Web应用中的前端架构
前端包括客户端(Web浏览器、移动端)、客户端和数据中心之间的网络,以及数据中心响应用户请求的部分。因为用户的每次交互、每个连接、每个响应都要穿越前端的各个组件,所以前端需要具备很大的吞吐能力、并发处理能力等。 状态管理状态管理是Web前端伸缩性最重要的方面。状态管理分为有状态服务和无状态服务。 有状态服务和无状态服务的关键区别是无状态服务的实例是完全可交换的,客户端可以访问任意实例而不用担心结果 ...
软件设计中“简单”这个原则
今天在看《互联网创业核心技术——构建可伸缩的Web应用》时候,书中的“简单”设计原则让我想起最近的工作以及先前处理此类问题的太多。那么,把书中的内容记录于此,方便时时查看。 最重要的原则是使事物简单。简单没有一个衡量标准,判断一个东西是不是简单的时候,你要首先回答的是这个是对谁以及什么时候而言的。 简单不是走捷径,不是为手边的问题找一个最快的方案。 简单是让别的软件工程师以一种最容易的方式使用你 ...
可伸缩的Web应用碎碎念
概念什么是伸缩性伸缩性是指系统可以根据需求和成本调整自身处理能力的一种能力。伸缩性常常意味着系统可以改变自身的处理能力以满足更多用户访问、处理更多数据而不会对用户体验造成任何影响。主要从以下几个方面度量: 处理更多数据 处理更高的并发 处理更高频次的用户交互 性能更多的是衡量系统处理一个请求或者执行一个任务需要花费多长时间,而伸缩性则更关注系统是否能够随着请求数量的增加(或减少)而相应地拥有相 ...