Gabriel

MongoDB 主从复制及 自动故障转移

血红的双手。 提交于 2019-12-21 19:49:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1、MongoDB 主从复制 MongoDB复制是将数据同步在多个服务器的过程。 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。 复制还允许您从硬件故障和服务中断中恢复数据。 官方文档 https://docs.mongodb.com/manual/replication/ 1.1 什么是复制? 保障数据的安全性 数据高可用性 (24*7) 灾难恢复 无需停机维护(如备份,重建索引,压缩) 分布式读取数据 1.2 MongoDB复制原理 mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。 mongodb各个节点常见的搭配方式为:一主一从、一主多从。 主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。 MongoDB复制结构图如下所示: 以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时, 主节点与从节点进行数据交互保障数据的一致性。 1.3 副本集特征 N 个节点的集群 任何节点可作为主节点 所有写入操作都在主节点上 自动故障转移 自动恢复 1.4 MongoDB副本集设置 1

两个有限点集中最短距离的计算

心已入冬 提交于 2019-11-29 18:45:10
昨天被一位老师提问了这个问题,一时没有回答上来,后经过一番查找资料,在这里做一下笔记。 问题描述 设有两个有限点集$u_{i}\in V_{1} (1\leq i\leq m)$和$v_{j}\in V_{2} (1\leq j\leq n)$,则两点集中最短距离定义为$d_{min}(V_{1}, V_{2})$=$min$ $d_{u_{i}, v_{j}}$。 问题解法1:穷举求解 直接容易想到的解法,即计算出两点集所有点之间的距离,并寻找最小的那个。伪代码如下: Algorithm 1: Brute Force Approach Input: The node set $V_{1}$ and $V_{2}$ Output: The $d_{min}(V_{1}, V_{2})$ 1. for $i$ =1 to $m$ 2. for $j$ =1 to $n$ 3. Compute the distance between $u_{i}$ and $v_{j}$ 4. end for 5. end for 6. Determine the minimum distance computed along line 1 to line 5 易知该算法复杂度为 O $(mn)$。这显然不是一个令老师满意的结果,于是考虑一个非穷举的解法。 问题解法2

ES新提案:双问号操作符

不想你离开。 提交于 2019-11-28 19:33:36
摘要: 简单实用的新特性。 原文: ES新提案:双问号操作符 译者:前端小智 本文主要讲 Gabriel Isenberg 撰写的ES提案 “Nullish coalescing for JavaScript” 。 它提出 ?? 替换 || 的运算符,并提供默认值。这里先把这相提案叫作 双问号操作符 ,如果你有好的叫法,欢迎留言讨论。 1. 概述 双问号 ?? 的操作符跟 || 类似,如果给定变量值为 null 或者 undefined ,刚使用双问号后的默认值,否则使用该变量值。 如下: > undefined ?? 'default' 'default' > null ?? 'default' 'default' > false ?? 'default' false > '' ?? 'default' '' > 0 ?? 'default' 0 2. 早期的 || 运算符号 直接来个例子来演示一下 || 运算,下面两个等式是等价的: a || b a ? a : b 如果 a 是 truthy 值,则返回 a , 否则返回 b 。 这使得使用 || 指定一个默认值成为可能,如果实际值是假的,那么将使用这个默认值: const result = actualValue || defaultValue; function getTitle(fileDesc) { return