分片概念&架构目标|学习笔记

简介: 快速学习分片概念&架构目标

开发者学堂课程【MongoDB精讲课程(下)分片概念&架构目标】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/727/detail/12981


分片概念&架构目标

 

集群分片

特点,不管搭建了多少个这个副本节点,它存储的数据都是一样的,存储的数据一样就带来一个问题,只能存在数据,只能存在一台服务器上面,完整的数据随着业务量非常大的时候,一台服务器已经存不下的时候就得用这个分片集群的方式

分片集群

实际上就是一种跨多台机器分布数据的一个方法。就是将这个数据拆分对吧,拆分成好多片儿,然后分别分散在不同的机器上,那分散在不同的机器上之后,就能达到一个好处,就是只需要用一片儿,或者说多台这种简单的这种小服务器就可以达到一个数,非常大的一个数据集的一个存储,不用再去单个的去增加那个配置。

解决系统增长的这个方法

随着这个业务越来越大,数据量越来越大之后,一般会有两种方案,一种是叫垂直扩展配置,垂直扩展是最传统的方式,就是不停的增加这台服务器的配置,给加内存加硬盘,但是垂直扩展它是有一个上限的,也知道这个计算机你甭管怎么加加到最后都是有一个上限,而且这个上限机器配置越好,其实它的这个性价比是越低的,那用分片其实可以带来第二种方式,就是水平扩展。当数据集在增加的时候,就需要将它拆分,分成一片儿一片儿的,给它分散的存在在不同的这种廉价一点儿,或者便宜的这个小服务器上面,最后再把它数据一汇总就可以构成大数据的这个高分组,这是非常大的一个数据集。这就是这个分片的好处,说白了,就是用多台廉价的小服务器,可以达到一个存储大数据的一个作用这就是这个分片

分片集群,包含三个组件,一个是这个分片,分片就是每个分片,都是存储数据的,最重要是存储数据的地方那还有个就是路由,这个机器你作为这个分片存储了之后,怎么访问以及访问的时候数据是在放在哪一片。需要通过这个路由来调度配置然后还需要第三个组件,其实就是存放这些配置信息的,就是哪个数据,存在哪个分片,到时候路由怎么去掉。需要一个这个调度的这个配置就是咱们的这个配置服务 configservers ,看一下整个完整的这个架构图:

image.png

APP 这个 server 通过路由去访问,访问的时候去抓取这个配置服务,配置服务之后再根据这个配置服务,去知道哪个数据存在哪一片,再去找对应的这个分片的这个服务器,把这个架构搞这么大之后,再把这个副本级也给它用上。

这个分片集群,实际上就最后有这么一个庞大的架构

image.png

上面是路由两个路由的主要作用,就是为了这个容灾当一个路由坏了之后,另一个路由还能用,们两个之间其实是相互独立的,它的作用都是作为这个路由节点,那还有这个配置服务和这个分片,至少要搭建两个分片服务,这两个分片服务分别都用这个副本的方式去搭建比如说分片一,一主一副本一仲裁。

分片二一样也是一主一副本一仲裁,这个 config 就是这个配置服务因为存储的是配置信息就不需要仲裁节点了,直接用本就可以了,两个副本就可以了。

可以想象一下,这块儿用仲裁的目的是什么,它不干什么事,也不存储数据,它主要的作用是为了投票,但是这个配置服务之它并不会存储大量的数据,其实就不需要这个仲裁节点了,两个副本都可以,因为对这个机器的要求其实是不高的,不需要存储很多数据,它就存储一些这个配置服务,所以这块搞两个副本就可以了,不用再去为了省钱搞一个什么仲裁,当然这块儿如果要搞成仲裁道理是一样的,其实就是为了还去搞一个这个配置服务,也给做一个这个,副本类似于副本集。

待会儿搭建的时候,其实跟这个副本级的搭建非常像,那其实要搭建这么123,三个副本级,然后加上两个路由,那这个三个副本级,分别每个里面又有三个服务,那一共是需要搭建11个,这个 mongo 服务,这个11个 mongo 服务,待会儿搭建的时候呢,需要有一定的顺序。

其实这个顺序就是甭管先搭副本还是先搭这个配置服务都可以,这两个可以任意的就是随便搭,随便谁先搭都可以,但是路由节点一定是需要先搭的,这个是需要注意的,搭建的时候,就跟这个副本级搭建基本一致。

相关文章
|
1月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
57 3
|
1月前
|
消息中间件 NoSQL Kafka
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
62 5
|
1月前
|
消息中间件 存储 分布式计算
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
66 4
|
1月前
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
47 0
|
1月前
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
39 0
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
47 0
|
1月前
|
设计模式 消息中间件 监控
后端开发中的微服务架构:从概念到实践
后端开发中的微服务架构:从概念到实践
|
2月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
204 3
|
3月前
|
Java Docker 微服务
微服务架构的概念、特点以及如何在Java Web开发中实现微服务。
微服务架构的概念、特点以及如何在Java Web开发中实现微服务。
90 1
|
4月前
|
JSON Go C++
开发与运维C++问题之在iLogtail新架构中在C++主程序中新增插件的概念如何解决
开发与运维C++问题之在iLogtail新架构中在C++主程序中新增插件的概念如何解决
45 1