Docker Engine 1.12中的Swarm模式帮助我们创建Docker Engine集群,我们称之为Swarm。一个Swarm是由安装了Docker Engine的物理机或者虚拟机节点组成,这些节点上的Docker Engine都采用Swarm模式运行。 Swarm集群中的节点分为两类:manager和worker。 Manager节点 Manager节点用来处理集群管理任务: 维护集群状
本章节将从一下几个方面介绍Docker Engine Swarm模式下的工作原理: 节点工作原理 Service工作原理 安全(PKI) Task的状体啊
注: 官网文档 gRPC Motivation and Design Principles, 我原来自己写了一份简单的读书笔记,后来发现有同学全文翻译了这篇文章,就放弃了自己的内容直接转载了. 文档地址 gRPC Motivation and Design Principles:英文原文 GRPC的产生动机和设计原则: 此文的中文翻译版本 读后感 注:以下是个人的一点感触 2015年3月的某一天,
世界上的网站上千万,网页数量更是如天上的星星数也数不清。那幺这些网站都是如何构建的?都包括哪些类型呢?笼统的概括世界上的网站分为两种类型: 静态网站:仅提供展示功能,不能与用户交互,不需要后端数据库存储用户信息 交互式网站:需要与用户交互,保存用户信息 大多数现代Web应用程序使用层叠样式表(CSS)、JavaScript、图片甚至是特殊的字体和字形库,如Awesome字体,这也是我们工具箱中最常
详见https://waylau.com/principle-and-practice-of-oauth2
原型链 //构造函数 function Foo(name,age){ this.name = name; } Foo.prototype.alertName = function (){ alert(this.name); } //创建示例 var f = new Foo('zhangsan'); f.printName = function () { console.log(this
在MongoDB中,写操作的原子性是在document级别上的,即使修改的是文档中的内嵌部分,写锁的级别也是document上。 当一个写操作要修改多个文档,每个文档的修改是原子性的。整个的写操作并不是原子性的,它可能和其他写操作产生交织。然而你可以使用$isolated隔离操作符来限制写操作,让它不与其他写操作交织。 不隔离性能更高,但是会产生数据的不确定性,隔离写操作,事务性更好。MongoD
1.1.1. 一、推送方式 哈勃数据通过kafka实时推送,用户通过订阅kafka数据可以满足更多使用场景,既可以满足离线统计需求,又可以支持实时分析 1.1.2. 二、工作流程 业务方申请一个kafka topic(用于数据推送与订阅 ,如没有私有kafka集群,可向运维申请公共kafka集群的topic) 业务方告知已申请的kafka broker信息、topic名称、推送数据的产品id。申请
一、概述 最新github上开源了很多热补丁动态修复框架,大致有: https://github.com/dodola/HotFix https://github.com/jasonross/Nuwa https://github.com/bunnyblue/DroidFix 上述三个框架呢,根据其描述,原理都来自:安卓App热补丁动态修复技术介绍,以及Android dex分包方案,所以这俩篇务
一、View绘制的流程框架 View的绘制是从上往下一层层迭代下来的。DecorView-->ViewGroup(--->ViewGroup)-->View ,按照这个流程从上往下,依次measure(测量),layout(布局),draw(绘制)。 二、Measure流程 顾名思义,就是测量每个控件的大小。 调用measure()方法,进行一些逻辑处理,然后调用onMeasure()方法,在其中
一、Android中的缓存策略 一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的。当缓存满了之后,再想其添加缓存,这个时候就需要删除一些旧的缓存并添加新的缓存。 因此LRU(Least Recently Used)缓存算法便应运而生,LRU是最近最少使用的算法,它的核
与 NW.js 相似,Electron 提供了一个能通过 JavaScript 和 HTML 创建桌面应用的平台,同时集成 Node 来授予网页访问底层系统的权限。 但是这两个项目也有本质上的区别,使得 Electron 和 NW.js 成为两个相互独立的产品。 1. 应用的入口 在 Electron 中,入口是一个 JavaScript 脚本。不同于直接提供一个URL,你需要手动创建一个浏览器窗
当Node开始换新的V8引擎版本时,原生模块可能“坏”掉。为确保一切工作正常,你需要检查你想要使用的原生模块是否被Electron内置的Node支持。你可以在查看Electron内置的Node版本,或者使用(参考:快速入门)查看。 如何安装原生模块 如下三种方法教你安装原生模块: 你当然也可以通过npm安装原生模块。大部分步骤和安装普通模块时一样,除了以下一些系统环境变量你需要自己操作: 设置了去
6. 原型模式(Prototype) Intent 使用原型实例指定要创建对象的类型,通过复制这个原型来创建新对象。 Class Diagram Implementation // java public abstract class Prototype { abstract Prototype myClone(); } // java public class ConcreteProt
一、事务 概念 ACID AUTOCOMMIT 二、并发一致性问题 丢失修改 读脏数据 不可重复读 幻影读 三、封锁 封锁粒度 封锁类型 封锁协议 MySQL 隐式与显示锁定 四、隔离级别 未提交读(READ UNCOMMITTED) 提交读(READ COMMITTED) 可重复读(REPEATABLE READ) 可串行化(SERIALIZABLE) 五、多版本并发控制 基本思想 版本号 Un