MongoDB

本文深入探讨了MongoDB,包括其技术优势如高可用性和支持海量数据,复制集的详细运作机制,分片集群的应用场景和搭建,以及模型设计方法。还涵盖了MongoDB的聚合查询、事务处理、性能指标和从关系型数据库迁移的考量。
摘要由CSDN通过智能技术生成

数据库简单分类

数据库:OLTP(联机事务处理)应用的场景,其存储的主要是与业务直接相关的数据,强调准确低时延高并发,如果没有特别强调,基本上数据库里只会去存储与业务相关的数据。

**数据仓库:OLAP(联机分析处理)是数据仓库系统的主要应用,其支持的对象只要是面向分析场景的应用,提供结构化主题化的数据提供给运营,做业务反馈和辅助决策,同时,有些场景下,也可以由数据仓库对业务进行支持。

MongoBD

  1. 一个以为JSON为数据模型的文档型数据库

  2. 横向扩展可以支撑很大数据量(10TB100TB)和并发

  3. 快速响应业务变化

    1. 同一个集合可以包含不同字段的文档对象

    2. 线上修改数据模式应用与数据库无需下线

    3. 支持使用JSON SChema 规范数据模式

技术优势

  1. JSON结构和对象类似,代码量低

  2. JSON的动态类型更容易响应新的业务需求

  3. 复制集提供99.999%高可用

  4. 分片架构支持海量数据和无缝扩容

安装过程

1.解压
tar -zxvf mongodb-linux-x86_64-rhel70-4.0.27.tgz
​
2.重命名
mv mongodb-linux-x86_64-rhel70-4.0.27 /usr/local/mongodb
​
3.创建文件夹(log,db,conf)
# 进入目录
cd /usr/local/mongodb/
# 创建三个文件夹
mkdir data data/db data/log
# 设置可读写权限
sudo chmod 777 data/db data/log/
​
4.mongodb 目录下新建配置文件 mongodb.conf
# 数据库数据存放目录
dbpath=/usr/local/mongodb/data/db
# 日志文件存放目录
logpath=/usr/local/mongodb/data/log/mongodb.log
# 日志追加方式
logappend=true
# 端口
port=27017
# 是否认证
auth=true
# 以守护进程方式在后台运行
fork=true
# 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
bind_ip=0.0.0.0
​
5.配置环境变量
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
​
6.开放 MongoDB 的端口 
# 开放27017端口
firewall-cmd --zone=public --add-port=27017/tcp --permanent
# 让配置生效
firewall-cmd --reload
# 查看开放的端口,验证是否成功
firewall-cmd --zone=public --list-ports
​
7.创建一个用户,赋予用户root权限
db.createUser(
    {
        user:"root",
        pwd:"123456",
        roles:[{role:"root",db:"admin"}]
    }
);

聚合查询

作用于多个集合,系列操作(OLAP、OLTP)

提供可视化管道计算并生成对应的java代码

$bucket

统计每个区间的数据条数
db.products.aggregate([
$bucket:{groupBy:"$price"boundaries: [0,10,20,30,40]default: "Other"
output:["count":{$sum:1))}}])
​
组合多个$bucket 
db.products.aggregate([{
$facet:(
price:$bucket:...)
year:$bucket:{...)}}}]}                    

复制集

高可用

  1. 写入时候迅速复制到另一个独立节点

  2. 写入节点故障自动选举

  3. 数据区域复制,减少另一个区域读延迟

  4. 不同类型压力在不同节点

  5. 数据中心故障迅速切换到异地

结构

简单复制集:一个主节点(写和投票)和两个从节点(复制主节点数据、选举投票)

数据如何复制

  1. 主节点记录oplog

  2. 从节点维持一个游标在自己的数据上回放

选举如何完成故障恢复

增加节点并不能提供性能

  1. 具有投票节点之间两两发送心跳(5次未收到则为失联)

  2. 主节点失联,从节点进行选举(优先级高,oplog较新,能够与多个节点连接);从节点(是否有投票权,优先级,隐藏【复制节点,但对程序不可见】,延迟&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值