MongoDB自学日记3——架构及HA】的更多相关文章

在对mongoDB的操作有了一定基础后,终于可以扯扯HA和架构这两个高大上的概念了.在这之前当然还得弄清楚mongoDB的Key feature:Sharding. 1. Sharding Shard从逻辑上来说就是整个数据的一个子集,从物理来说就是管理这一子集的服务器.一个分片可以包含多台服务器.若一个分片包含多台服务器则每台服务器都有一份完全相同的数据子集副本(Replica set). 分片是MongoDB强调的一个Feature.分片的目的就在于完成自动化集群运维.mongoDB clu…
首先应该明确的是为什么要学MongoDB.OK,如果是仅仅出于对于流行技术的原始兴趣,可能并不能深入学习,还必须有应用需求.刚开始学习MongoDB,因为以前对其它数据库的了解也不是特别深入,所以许多概念和原理需要梳理. 本节主要是学习访问控制权限的问题.第一步就需要创建用户,手头有一些mongodb的文档,然而估计是出版时间和版本太老了,基本都说用db.addUser创建用户,结果执行不成功.原因在于我所使用的mongodb版本是3.0.6,而从2.6版本起已经deprecated了addUs…
作为一个做底层及后台研发的,最近对NoSQL却产生了浓厚的兴趣,加入了一个DBA群,据说北京排的上号的DBA都在里面,然而里面基本都是Oracle系的,MySQL和MongoDB系的少之又少.学习靠不得别人,要和Oracle大佬们撕比尚需时日. 废话少说,在抱怨关系型数据库的死板及开发效率,力推NoSQL之后,NoSQL的代表之一MongoDB也受过一些质疑,比如<Don't use mongoDB>一文.然而NoSQL的应用却还是没有停下,比如滴滴就是NoSQL.在去IOE的大趋势下,阿里选…
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近阅读了TiDB源码的说明文档,跟MongoDB的分片集群做了下简单对比. 首先展示TiDB的整体架构 MongoDB分片集群架构如下: 更加具体点如下: 下面从介绍TiDB组件的角度切入,将其跟MongoDB分片集群做对比. TiDB 集群主要分为三个组件: TiDB Server TiDB Server 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV…
MongoDB分布式集群架构 看到这里相信你已经掌握了 MongoDB 的大部分基本知识,现在在单机环境下操作 MongoDB 已经不存在问题,但是单机环境只适合学习和开发测试,在实际的生产环境中,MongoDB 基本是以集群的方式工作的.集群的工作方式能够保证在生产遇到故障时及时恢复,保障应用程序正常地运行和数据的安全. 重点介绍 MongoDB 的集群工作方式,以及在集群工作方式下,MongoDB 是如何使用分片和复制的机制来完成对数据的管理和恢复的. MongoDB 有三种集群部署模式,分…
Hadoop学习笔记总结 01.HDFS架构 1. NameNode和ResourceManager NameNode负责HDFS,从节点是DataNode:ResourceManager负责MapReduce,从节点上是NodeManager. 2. NameNode工作原理 元数据内容 名字,几个副本,几个块_Id,每一个块在哪些主机上. 实际是真实文件和系统block块的映射. NameNode职责 维护元数据信息 维护hdfs目录树 响应客户端请求 NameNode元数据管理机制 (1)…
第一章 走进MongoDB 1.1NoSQL是什么?       1.1.1NoSQL简介        对于不了解NoSQL的人都会认为NoSQL为No SQL,即不是SQL.但是这种理解是错误的,NoSQL应该是Not Only SQL,翻译过来为不仅仅是SQL.从这个翻译中我们可以看出来,NoSQL仍然还是SQL. NoSQL是一场反SQL的革命性的数据库运动,在很早就有人提出来,但是一直没有很好地发展,直到互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规…
HDFS2.0概述 一背景,Hadoop1.0中HDFS和MapReduce在高可用,扩展性等方面存在问题    HDFS存在问题,1,NameNode单点故障,难以应用于在线场景.2,NameNode压力过大,且内存受限,影响系统扩展.    MapReduce存在的问题,1,JobTracker访问压力大,影响系统扩展性,2,难以支持除MapReduce之外的计算框架,比如Spark,Storm等 二 Hadoop1.X与Hadoop2.X区别        解决HDFS1.0种单点故障和内…
一.复制集的作用 (1) 高可用 防止设备(服务器.网络)故障. 提供自动failover 功能. 技术来保证数 (2) 灾难恢复 当发生故障时,可以从其他节点恢复. (3) 功能隔离 用于分析.报表,数据挖掘,系统任务等. 用于备份. 二.复制集架构及角色 MongoDB复制集由一组mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点. (一)主节点 接收所有来自客户端的写操作,MongoDB Driver(客户端)的所有数据都写入Primary,Primary…
一.XenServer HA概述 XenServer HA是一套全自动功能设计,规划,安全地恢复出现问题的XenServe 主机上的虚拟机的功能组件. 启用 HA 后,XenServer 将持续监视池中主机的运行状况.如果当前 VM 主机发生故障,HA 机制会自动将受保护的 VM 移动到一台运行状况良好的主机上.此外,如果发生故障的主机是Pool Master,HA 会自动选择另一台主机来接管Pool Master的角色,以便XenServer 资源池能够继续正常的工作. XenServer H…
1.2.1MongoDB简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立…
一 学习契机 今年是走出校门的第一个年头,进入了一家还算不错的公司,领着一份还算不错的薪水,在外人眼中,似乎这样已经不错了,只要我努力好好做,前程一片光明.可事实真是这样吗?两份实习经历都指向我应该从事的方向,然而现实却让我最终背弃了当初自己的信誓旦旦.但是跟人说起的时候,我羞于承认现在的职业并不是我的主动选择,而是因为想做的职业并没有向我伸出橄榄枝. 每天坐在工位上,做着迟早会被系统取代的工作,价值感非常低.在与各种人际之间的纠葛当中,让我内耗非常严重.每天早上起来,走在上班的路上,气若游丝,…
超过存储上限或记录条数删除最早的记录:db.createCollection("集合名",{capped:true,size:1024,max:100})注解:指定集合名的最大记录条数和最大内存为1MB,超过这两个条件任意之一就会删除最早的数据; 在MongoDB服务器端执行Javascript脚本:\E.G:db.eval("Function(name){return "hello"+name;}",['refactor'])输出结果为:hel…
MongoDB关系:MongoDB的关系表示多个文档之间在逻辑上的相互联系.文档之间可以通过嵌入和引用来建立联系.关系:1:11:NM:1M:N 嵌入式:{ id:11;name:嘻嘻嘻;address:[{111},{222}]}引用式:{id:11;name:嘻嘻嘻;address:[id:13,id:14;]}{id:13; 1111}{id:14; 222} MongoDB数据库引用:{ $ref(集合名称): ,$id(引用的id): ,$db(数据库名称,可选参数): } Mongo…
条件操作符: gt(大于),gte(大于等于),lt(小于),lte(小于等于)E.G:db.People.find({age:{$gt:100}})//查找集合里age大于100的文档 注意:string类型的值不能查处结果,使用命令提示符进行添加时默认为string,可使用MongoDB compass进项修改; E.G:db.People.find({age:{$type:16}})//查询age这个名字下面类型是int32(16)的文档 显示条数的控制:limitE.G:db.BookL…
http://www.runoob.com/mongodb/mongodb-databases-documents-collections.html…
1:集群环境说明:mongodb1:192.168.43.10.mongodb2:192.168.43.11.mongodb3:192.168.43.12.且基于主机名相互通信/etc/hosts文件(为了集群信息同步不出现问题,先关闭认证功能anth)   2:编辑mongodb1的/etc/mongod.conf文件,注释auth指令,添加如下内容 # 指定副本集的名称 replSet=uplooking # 指定预拷贝的索引,这里只拷贝id那个系统自动生成的索引 replIndexPref…
MongoDB 是一个可移植的数据库,它在流行的每一个平台上都可以使用,即所谓的跨平台特性. 一个运行着的MongoDB 数据库就可以看成是一个MongoDB Server,该Server 由实例和数据库组成,在一般的情况下一个MongoDB Server 机器上包含一个实例和多个与之对应的数据库,但是在特殊情况下,如硬件投入成本有限或特殊的应用需求,也允许一个Server 机器上可以有多个实例和多个数据库.   MongoDB 中一系列物理文件(数据文件,日志文件等)的集合或与之对应的逻辑结构…
vs渣渣自学之旅 一.vs实用插件 二.制作简历之旅 1.一堆错误示范示范 2.标签的使用 3.文件的文本的样式的保存 二.美化博客园之旅 1.第一天 学python有点多这个慢慢消化…
一.环境 操作系统 安装包 安装方式 Ubuntu18.04 mongodb4.0 apt安装 Ubuntu18.04 mongodb4.0 docker安装 二.apt安装 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 echo "deb [ arch=amd64 ] http://mirrors.aliyun.com/mong…
MongoDB复制原理 mongodb的复制至少需要两个节点.其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据. mongodb各个节点常见的搭配方式为:一主一从.一主多从. 主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致. MongoDB复制结构图如下所示: 以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时, 主节点与从节点进行数据交互保障数据的一致性. 副…
分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量.这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据. 为什么使用分片 复制所有的写入操作到主节点 延迟的敏感数据会在主节点查询 单个副本集限制在12个节点 当请求量巨大时会出现内存不足. 本地磁盘不足 垂直扩展价格昂贵 MongoDB分片 下图展示了在MongoDB中使用…
一.插入文档 二.查询文档 三.更新文档 可以看到标题(title)由原来的 "Mongodb" 更新为了 "MongoDBtest". 以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true. 下一篇:https://www.cnblogs.com/LinHuChongChongChong/p/11884804.html…
上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上). 本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与ActionBar,MenuItem集成等~~ 1.管理Fragment回退栈 类似与Android系统为Activi…
自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务:以及Fragment的一些特殊用途,例如:没有布局的Fragment有何用处?Fragment如何与Activity交互?Fragment如何创建对话框?Frag…
DatePicker 1.获取一个日历对象: Calendar cal=Calendar.getInstance(); 2.获取当前日期及时间: int year=cal.get(Calendar.YEAR); int month=cal.get(Calendar.MONTH)+1;//特殊的是Calendar中月份从0开始计数,所以加1得到常规月份 int day=cal.get(Calendar.DAY_OF_MONTH); int hour=cal.get(Calendar.HOUR_OF…
ArrayAdapter适配器: (1)用于显示基本的文字内容 (2)基本使用过程:新建适配器---创建或加载数据源---适配器加载数据源---视图加载适配器 ArrayAdapter(上下文,当前ListView加载的每一个列表项所对应的布局文件,数据源) (ArrayAdapter)数据适配器的实现过程: 1.新建适配器 arr_adapter=new ArrayAdapter<String>(context,布局文件,数据源) arr_adapter=new ArrayAdapter&l…
线性布局(LinearLayout)常用属性: android:orientation="vertical"--决定子类控件的排布方式(vertical垂直:horizontal水平) Android:garavity="center"--决定子类控件的xy的位置常用属性值: 1>center_vertical:垂直(y轴)居中 2>center_horizongtal:水平居中 3>center 居中 4>right 位于当前布局的右边 5…
在winform中入口文件就是Program.cs,而在WPF中看不到,因为它是自动生成的,可以说隐藏了,我们可以自定义一个入口文件,然后修改项目属性中的启动对象为我们自定义的入口文件. 首先新建入口文件,名字随意. 代码如下: [STAThread] static void Main(string[] args) { ) { App app = new App(); app.Run(].ToString())); } else { App app = new App(); app.Run(ne…
学习WPF的第一天,尝试写比较常用的功能,无标题窗体拖动. 先在设计界面给它加上MouseDown事件 <Window x:Class="MyFirstWPFAPP.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:…