MongoDB 介绍

关系型数据库:

根据关系模型(“一对一”,“一对多”,“多对多”等,关系模型是二维表的模型),关系型数据库有oracle,mysql ,sql server 

非关系型数据库:

根据非关系型模型(键值对:redis,memcache;列模式:hbase,文档模式:MongoDB)

比较:

  • 查询速度:非关系性数据库快于关系型
  • 安全:关系型安全
  • 存储数据格式:关系型数据库是二维表,所以优于非关系型数据库

 

MongoDB介绍:

是文档型数据库:编码方式:(json,xml)

  1. 它是一个强大,灵活且易于扩展的通用性数据库,使用文档是一组键值对(key-value)
  2. 拥有这关系型数据库的关键能力:表达丰富的查询和辅助索引,强有一致性,可扩展性。
  3. NoSQL数据库技术:灵活的数据模型(与传统关系型数据库相比,现代的Nosql数据库提供了更为灵活的数据模型,可以方便的存储任何结构的数据,并且允许不停机的情况下修改Schema)、可扩展性(Nosql数据库更专注与扩展性,都有某种形式的分片或分区,这就使得Nosql可以再商用硬件上水平扩展,获得更高的吞吐量和低延时)和高性能部署(Nosql设计用于为持续高可用系统,为用户提供高质量的体验)

为什么出现:

MongoDB是属于非关系型数据库的一种,拥有一致性,可扩展型,也拥有固定的文件格式和编码方式的应用

 

 MongoDB的存储引擎

存储引擎:负责处理什么数据结构存储数据2

在MongoDB复制集,可以多种存储并存,可以满足应用更为复杂的需求。

例如:In-memory存储引擎进行低延时的操作,同时使用基于磁盘的存储引擎完成持久化

 

Mongodb的架构

一主多从:官方建议至少3个节点组成副本集

Mongodb副本集

1、提供数据保护、负载均衡和容灾能力

2、节点心跳的检查,以检测和维护副本集

3、通过选举的机制完成故障切换

 

mongodb集群架构组成

1、路由服务

  • 路由到对应shard服务器上的mongo
  • 所有的请求都要通过mongos进行协调
  • 去除应用程序的路由选择
  • 可以理解成一个请求分发中心

如果路由服务发生故障怎么处理?

如果路由服务发生故障,会出现单点故障,通常要部署多个mongos请求服务

2、分片服务

分片是将一个副本集数据分别存储在不同的shard节点上(通过shard keys来选择不同的shard)

分片的优势:

  • 实现负载均衡
  • 提高访问效率
  • 增强扩展性

3、配置服务

  • 存储所有数据库元信息(路由、分片)的配置
  • Mongos没有存储分配和路由信息
  • 每次启动mongos都会读取配置服务

如果配置服务发生故障怎么处理?

如果配置服务发生故障,会导致元信息丢失,通常要部署多个配置服务器

Mongodb水平扩展

横向水平扩展从服务

 

posted @ 2020-08-04 20:20  luowendy  阅读(164)  评论(0编辑  收藏  举报