MongoDB 安装和可视化工具

在Windows 环境中,MongoDB默许的安装文件存储目录是:C:\Program
Files\MongoDB\Server\3.2\bin,点击 Windows+R,输入cmd,启动Command
Prompt,进入到安装目录:

图片 1
    其节点有如下有趣而又主要的表征:
       
1.一致时刻多台机器创设同一个节点,唯有一个会争抢成功。利用这一个特点可以做分布式锁。
       
2.临时节点的生命周期与会话一致,会话关闭则暂时节点删除。这几个特性平时用来做心跳,动态监督,负载等动作。
       
3.依次节点保障节点名全局唯一。这几个特点可以用来变化分布式环境下的大局自拉长id。
  
 通过zookeeper提供的原语服务,可以对zookeeper能做的政工有个标准和直观的认识。
六:zookeeper提供的原语服务
        1.创办节点
        2.删减节点
        3.更新节点
        4.取得节点信息
        5.权限控制
        6.轩然大波监听
  
 实际上,就是对节点的增删查改加上权限控制与事件监听,不过通过对那些原语的重组以及差别景况的使用,可以兑现无数用法。
       
1.数额公布订阅。即注册大旨,见上边dubbo用法。首要通过对节点管理到位宣布以及事件监听做到订阅。
        2.载重均衡。见上边kafka用法。
       
3.命名服务。zookeeper的节点结构自然帮忙命名服务,即把新闻汇聚储存,并以树状管理,方便统一查阅。
       
4.分布式协调公告。协调布告实际上与宣布订阅类似,由于引入的第三方的zookeeper,实际上对很八种协调通告做通晓耦,比如参考文献4中涉嫌的新闻推送,心跳检测等。
       
5.集群管制与master选举。通过上边的第二点特性,能够无限制得知集群机器存活情况,从而轻松管理集群;通过下边第一点特性,可以做出master争抢。
        6.分布式锁。实际上就是第一点特性的利用。
        7.分布式队列。实际上就是第三点特性的行使。
       
8.分布式的出现等待。类似于多线程的join难点,主义务的进行重视于其余子职责总体推行完毕,在单机四线程里可以用join,不过分布式环境下什么落到实处吗。利用zookeeper,能够创制一个首长务节点,旗下子职分一旦实施完成,则在领导务节点下挂一个子任务节点,等节点数量丰富,则以为主职分可以起来实践。
  
 可以窥见,所有的原语就是zookeeper的底子,而其他的用法总括无非是将原语放到分化景况下的分类罢了。
    相信到那边您对zookeeper应该有个初阶的刺探和大约的影象了。

mongod

   
zookeeper可谓是现阶段应用最广大的分布式组件了。其作用和天职单一,但却相当关键。
  
 在现行这么些年代,介绍zookeeper的书和作品可谓不可胜数,本人不才,试图透过协调的明亮来介绍zookeeper,希望通过一个初大家的见识来学学zookeeper,以期令人越发长远和平静的接头zookeeper。其中参考了众多学科和书,相关书目列在文末,也感谢这个小编。
  
 学习新的框架,先让我们搞了然他是何许,那是它的内蕴。然后再介绍它能做什么,那是它的外延,内涵和外延共同来定义框架本身,会对框架有相比深厚的知晓,在拔取规模上知道哪些用。其次再搞了解zookeeper相关的论争基础,其目标是了解zookeeper是怎么被发明的,是还是不是可以借鉴以便今后和好力所能及用到任哪儿方。最终搞精晓zookeeper中部分统筹的法则和细节,目的也是搞清来因去果,学会“术”从而选取到其他地点。当然了,加深的明亮同样可以支持认识zookeeper本身,在选取时才知道怎么如此用。
一:首先,zookeeper到底是何等?
  
 zookeeper实际上是yahoo开发的,用于分布式中一致性处理的框架。最初其用作研发Hadoop时的副产品。由于分布式系统中一致性处理相比较困难,其余的分布式系统没有要求费力重复造轮子,故随后的分布式系统中大批量利用了zookeeper,以至于zookeeper成为了各类分布式系统的基本功零部件,其地点之根本,综上可得。有名的hadoop、kafka、dubbo
都是基于zookeeper而营造。
  
 要想了然zookeeper究竟是做什么的,那首先得领悟通晓,什么是一致性。
  
 所谓的一致性,实际上就是围绕着“看见”来的。什么人能瞥见?能不能看见?几时看见?举个例证:Taobao后台卖家,在后台上架一件大促的货色,通过服务器A提交到主数据库,如果刚提交后立马就有用户去通过应用服务器B去从数据库查询该商品,就会产出一个光景,卖家已经更新成功了,然则买家却看不到;而透过一段时间后,主数据库的数据同步到了从数据库,买家就能查到了。
    假如卖家更新成功将来买家立马就能收看卖家的翻新,则称为强一致性;
    假设卖方更新成功后买家无法看到卖家更新的始末,则号称弱一致性;
  
 而卖家更新成功后,买家通过一段时间最终能来看卖家的立异,则称之为最后一致性。
  
 怎么着确保在分布式环境下多少的结尾一致,那一个就是zookeeper须要缓解的题材。对于那几个标题,有何挑衅,zookeeper又是如何缓解那几个挑衅的。

当启动MongoDB的经过关闭后,MongoDB随之关闭,只需要动用–fork参数,就能使MongoDB未来台守护进度形式启动。

图片 2
二:一些广阔的化解一致性难点的情势:
       
1.查询重试补偿。对于分布式应用中不确定的场所,先利用查询接口查询到眼前景况,假诺当前情况不平等则运用补偿接口对气象进行重试推进,或者回滚接口对工作做回滚。典型的情状如银行跟支付宝之间的并行。支付宝发送一个转载请求到银行,如直接未收到响应,则足以由此银行的询问接口查询该笔交易的意况,如该笔交易对方未收取,则选择补偿的情势展开推送。
       
2.定时义务推送。对于地方的场所,有可能三次推送搞不定,于是必要2次,3次推送。不要狐疑,支付宝内最初掉单率很高,全靠后续不断的定时义务推送扩充成功率。
       
3.TCC。try-confirm-cancel。实际上是两阶段协议,第二等级的可以达成提交操作可能逆操作。
三:zookeeper到底能做什么?
  
 在业界的莫过于行使是如何?精通那么些使用,会对zookeeper可以做的事有更直观的认识。
    1.hadoop
  
 帝王级应用,ResourceManager在整个hadoop中算是单点,为了兑现其高可用,分为主备ResourceManager,zookeeper在其中管制整个ResourceManager。
  
 可以设想,主备ResourceManager最初是主RM提供服务,假若全勤有惊无险,则zookeeper无用武之地。然则,总归会油不过生主RM提供源源服务的状态。于是会出现主备切换的情况,而zookeeper正是为主备切换保驾护航。
  
 先来演绎一下,主备切换会冒出哪些难题。传统的主备切换,可以让主备之间维持心跳连接,一旦备机发现主机心跳检测不到了,则要好切换为主机,原来的主机等待救援。那种办法有多个难点,一是由于网络抖动,负载过大等难题,备机检测不到心跳并不能注解主机一定挂了,有可能一定时间后主机或互连网复苏,那时候主机并不知道备机已经切换为主机,2台主机相互争用,可能导致脑裂;二是只要局地数目汇总在主机上边,则备机切换时由于联合延形势必会损失掉一部分的数据。
  
 如何解决那一个题材?早期的措施提供了不少化解方案,比如备机一旦切换为主机,则透过电源控制直接切断主机电源,不难严酷,可是此时备机已经是单点,要是主机是因为量撑不住而挂,那备机有可能会一再,最后导致整个服务不可用。
四:zookeeper又是何等解决这么些题材的吗?
       
zookeeper作为第三方集群插手到主备节点中去,当主备启动时会在zookeeper上竞争创立一个暂时锁节点,争用成功者则担任主机,其他备机;
       
所有备机会监听该临时锁节点,一旦主机与zookeeper间session失效,则暂时节点被去除;
       
一旦临时节点被剔除,备机初步重新申请制造临时锁节点,重新争用为主机;
       
用zookeeper怎么样解决脑裂?实际上主机争用到节点后通过对根节点做一个ACL权限控制,则其余抢占的机器由于无法创新临时锁节点,唯有丢弃成为备机。
  
 zookeeper使用了卓殊简单又现成的措施来化解的那么些难点,比起其它方案方便广大,那也是干什么zookeeper流行的来头。说白了,就是把复杂操作封装化精简化。
    1.dubbo
  
 作为业界闻名的分布式SOA框架,dubbo的最首要的劳务登记发现意义便是由zookeeper来提供的。
  
 对于一个劳动框架,注册中央是其基本中的焦点,即便暂时挂掉并不会招致整个服务出难点,不过假如挂掉,全体风险就很高?悸且话闱榭?注册宗旨就是单台机器的时候,其促成很简单,所有机器起来都去挂号服务给它,并且存有调用方都跟它保持长连接,一旦服务有变,即透过长连接来公告到调用方。不过当服务集群规模扩充时,那工作就不不难了,单机保持连接数有限,而且便于故障。
  
 作为一个安居乐业的服务化框架,dubbo可以挑选并引进zookeeper作为注册大旨。其底层将zookeeper常用的客户端zkclient和curator封装成为ZookeeperClient。
        当服务提供者服务启动时,向zookeeper注册一个节点;
       
服务消费者则订阅其父节点的浮动,诸如启动截止都可以透过节点创造删除得知,分外意况比如被调用方掉线也足以经过临时节点session
断开电动删除得知;
       
服务消费方同时也会将协调订阅的劳动以节点创造的艺术放置zookeeper;
       
于是可以获得映射关系,诸如何人提供了劳务,哪个人订阅了哪个人提供的劳动,基于那层关系再做监控,就能随意得知一切系统意况。
五:zookeeper的主导数据模型
    一句话,类似Linux文件系统的节点模型

1,推荐 Robomongo

db.serverCmdLineOpts()

1,常用参数

mongo进度是构造一个Javascript Shell,用于跟mongod进程并行,依据mongod提供的接口对MongoDB数据库举办田间管理,约等于SSMS(SQL
Server Management Studio),是一个管理MongoDB的工具。

3,查看mongod的启航参数

3,查看当前连日的DB

每回打开Command
Prompt都亟需进入到MongoDB的装置目录万分烦劳,可以修改Computer的Environment
Variables,右击This PC->Properties,依次点击 Advanced System
Setting->Environment Variables,打开Environment Variables 窗体,修改
Path 系统变量,在 Path 变量的字符串前面扩张”C:\Program
Files\MongoDB\Server\3.2\bin”,注意八个Path之间以“;”分割。

mongod 是百分之百MongoDB最基本的进度,负责数据库的创造,删除等管理操作,运行在服务器端,监听客户端的呼吁,提供数据服务。

  • –dbpath
    <db_path>
    :存储MongoDB数据文件的目录
  • –directoryperdb:指定每个数据库单独存储在一个索引中(directory),该目录位于–dbpath指定的目录下,每一个子目录都对应一个数据库名字。Uses
    a separate directory to store data for each database. The
    directories are under the –dbpath directory, and each subdirectory
    name corresponds to the database name.
  • –logpath
    <log_path>
    :指定mongod记录日志的文件
  • –fork:以后台deamon形式运行服务
  • –journal:最先日志效率,通过保留操作日志来下滑单机故障的过来时间
  • –config(或-f)<config_file_path>:配置文件,用于指定runtime
    options
  • –bind_ip <ip
    address>
    :指定对外劳务的绑定IP地址
  • –port
    <port>
    :对外劳务窗口
  • –auth:启用验证,验证用户权限控制
  • –syncdelay<value>:系统刷新disk的流年,单位是second,默认是60s
  • –replSet
    <setname>
    :以副本集方式启动mongod,副本集的标识是setname

二,带你入门

动物书《MongoDB权威指南-第二版》,卓殊经典

mongo 是一个交互式的js shell,提供了一个强大的js
环境,为DBA管理MongoDB,developer查询MongoDB数据提供接口。通过mongo
shell和MongoDB进行互动,查询和修改MongoDB数据库,管理MongoDB数据库,维护MongoDB的副本集和分片集群,是一个那些有力的工具。

3,学习MongoDB的入门教程MongoDB
Tutorial

MongoDB同时开动一个HTTP服务器,监听27017端口,假设MongoDB
实例安装在地头,那么在浏览器中输入:http://localhost:27017/

use admin
db.shutdownServer()

五,MongoDB的可视化工具

支撑MongoDB 3.2
版本,个人运用免费,用于商业收费,下载地址:MongoBooster下载

MongoDB使用BSON对象来存储,与JSON格式类型的键值对(key/value)类似,MongoDB数据库和关系型DB的仓储模型对应关系:

mongod --dbpath=C:\data\db

2.1 以命令方式启动,默认的dbpath是
C:\data\db

  • –nodb:
    阻止mongo在启动时连接受数据库实例;
  • –port <port>
    :指定mongo连接到mongod监听的TCP端口,默许的端口值是27017;
  • –host <hostname>
    :指定mongod运行的server,若是没有点名该参数,那么mongo尝试连接运行在位置(localhost)的mongod实例;
  • <db
    address>:指定mongo连接的数据库
  • –username/-u <username>
    和 –password/-p
    <password>
    :指定访问MongoDB数据库的账户和密码,唯有当认证通过后,用户才能访问数据库;
  • –authenticationDatabase
    <dbname>
    :指定创造User的数据库,在哪个数据库中创制User时,该数据库就是User的Authentication
    Database;

mongod

决不关闭MongoDB实例,新开拓一个命令行工具,输入mongo ,该命令启动mongo
shell,shell 将电动连接本地(localhost)的MongoDB实例,默许的端口是27017:

  • C:系统在执行某项操作后仍旧居于相同的景观。在分布式系统中,更新操作实践成功之后,所有的用户都能读取到最新的值,这样的系统被认为颇具强一致性。
  • A:用户执行的操作在听其自然时间内,必须回到结果。假使超时,那么操作回滚,跟操作没有发生同样。
  • P:分布式系统是由多个分区节点组成的,每个分区节点都是一个单独的Server,P属性申明系统可以处理分区节点的动态出席和距离。

在营造分布式系统时,必须考虑CAP特性。传统的涉及型DB,重视的是CA特性,数据一般存储在一台Server上。而拍卖海量数据的分布式存储和处理系列更看得起AP,AP的预先级要高于C,但NoSQL并不是完全放弃一致性(Consistency),NoSQL保留数据的最后一致性(伊芙ntually
Consistency)。最后一致性是指更新操作达成之后,用户最后会读取到数量更新之后的值,可是会设有一定的日子窗口,用户仍会读取到履新从前的旧数据;在肯定的光阴推移之后,数据达到一致性。

在起步mongod时,常用的参数是:

在开行mongo shell时,常用的参数是:

mongod -f C:\data\db\mongodb_config.config

db.help()查看数据库级其他协助
db.mycoll.help()查看集合级其余帮忙

8,协理命令

use foo
show dbs

show collections
db.getCollectionNames()

2,链接到MongoDB 实例

1,启动MongoDB实例

2.2 以安插文档的艺术启动

2,MongoBooster

将mongod的命令参数写入配置文档,以参数-f
启动

db
db.getName()
help
use foo
db.users.insert({"name":"name 1",age:21})
db.users.find()

MongoDB
是一款尤其走俏的NoSQL,面向文档的数据库管理体系,官方下载地址是:MongoDB,我选取的是
Enterprise Server (MongoDB 3.2.9)版本,安装在Windows Server
2012条件中。

图片 3

参照文档:

7,关闭MongoDB 实例

在mongo shell中,执行以下命令,关闭MongoDB实例

mongod -fork

mongo

图片 4

六,学习MongoDB

1,推荐学习MongoDB书籍

NoSQL 数据库的辩护功底是CAP 理论,分别代表
Consistency(强一致性),Availability(可用性),Partition
Tolerance(分区容错),分布式数据系统只可以知足其中多个特点:

4,查看MongoDB实例中的db 和 collection

图片 5

四,mongo命令常用参数

环境变量设置成功之后,在C盘中创设一个文书夹data,用于存储MongoDB的数据库文件。然后,打开一个命令行工具,输入mongod
启动MongoDB实例,默许监听的TCP端口是 27017 。

三,mongod 命令常用参数**

罗布omongo
是开源,免费的MongoDB管理工具,下载地址:Robomongo下载

利用命令查看正在连接的数据库名字

6,在foo数据库中开创users集合,向聚集中插入一条document

2,MongoDB的启航格局

2,学习MongoDB的官方手册: MongoDB
Manual

mongod
是MongoDB系统的首要护理进度,用于拍卖数量请求,数据访问和推行后台管理操作,必须启动,才能访问MongoDB数据库。

2.3 以daemon格局启动

mongo

5,切换db

一,设置Path环境变量

图片 6

发表评论

电子邮件地址不会被公开。 必填项已用*标注