麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

MongoDB分片集群是啥?一文帶你搞明白原理及搭建

2024-09-07 00:22:35
字體:
來源:轉載
供稿:網友
  我們知道mongodb是分布式文檔存儲數據庫,而mongodb部署架構分為單機,可復制集和分片群集。其中,分片群集是比較復雜,而且運維難度比較高的。很多人對于mongodb分片集群都不是很理解,這篇文章就給大家介紹一下MongoDB分片集群的問題。
 
  1、什么是分片?為什么要分片?
 
  我們知道數據庫服務器一般出現瓶頸是在磁盤io上,或者高并發網絡io,又或者單臺server的cpu、內存等等一系列原因。于是,為了解決這些瓶頸問題,我們就必須擴展服務器性能;通常擴展服務器有向上擴展和向外擴展,所謂向上擴展就是給服務器加更大的磁盤,使用更大更好的內存,更換更好的cpu。這種擴展在一定程度上是可以解決性能瓶頸問題,但隨著數據量大增大,瓶頸會再次出現;所以通常這種向上擴展的方式不推薦。
 
  向外擴展是指一臺服務器不夠加兩臺,兩臺不夠加三臺,以這種方式擴展,只要出現瓶頸我們就可以使用增加服務器來解決;這樣一來服務器性能解決了,但用戶的讀寫怎么分散到多個服務器上去呢?所以我們還要想辦法把數據切分成多塊,讓每個服務器只保存整個數據集的部分數據,這樣一來使得原來一個很大的數據集就通過切片的方式,把它切分成多分,分散的存放在多個服務器上,這就是分片。
 
  2、數據集分片示意圖
 
 
 
  提示:我們通過分片,可以將原本1T的數據集,平均分成4分,每個節點存儲原有數據集的1/4,使得原來用一臺服務器處理1T的數據,現在可以用4臺服務器來處理,這樣一來就有效的提高了數據處理過程;這也是分布式系統的意義;在mongodb中我們把這種共同處理一個數據集的部分數據的節點叫shard,我們把使用這種分片機制的mongodb集群就叫做mongodb分片集群;
 
  3、mongodb分片集群架構
 
 
 
  提示:在mongodb分片集群中,通常有三類角色,第一類是router角色,router角色主要用來接收客戶端的讀寫請求,主要運行mongos這個服務;為了使得router角色的高可用,通常會用多個節點來組成router高可用集群;第二類是config server,這類角色主要用來保存mongodb分片集群中的數據和集群的元數據信息,有點類似mogilefs中的tracker的作用;為了保證config server的高可用性,通常config server也會將其運行為一個副本集;第三類是shard角色,這類角色主要用來存放數據,類似mogilefs的數據節點,為了保證數據的高可用和完整性,通常每個shard是一個副本集;
 
  4、mongodb分片集群工作過程
 
  首先用戶將請求發送給router,router接收到用戶請求,然后去找config server拿對應請求的元數據信息,router拿到元數據信息后,然后再向對應的shard請求數據,最后將數據整合后響應給用戶;在這個過程中router 就相當于mongodb的一個客戶端代理;而config server用來存放數據的元數據信息,這些信息主要包含了那些shard上存放了那些數據,對應的那些數據存放在那些shard上,和mogilefs上的tracker非常類似,主要存放了兩張表,一個是以數據為中心的一張表,一個是以shard節點為中心的一張表;
 
  5、mongodb是怎么分片的?
 
  在mongodb的分片集群中,分片是按照collection字段來分的,我們把指定的字段叫shard key;根據shard key的取值不同和應用場景,我們可以基于shard key取值范圍來分片,也可以基于shard key做hash分片;分好片以后將結果保存在config server上;在configserver 上保存了每一個分片對應的數據集;比如我們基于shardkey的范圍來分片,在configserver上就記錄了一個連續范圍的shardkey的值都保存在一個分片上;
 
  除了上述兩種切片的方式以外,我們還可以根據區域切片,也叫基于列表切片,
 
  上圖主要描述了基于區域分片,這種分片一般是針對shardkey的取值范圍不是一個順序的集合,而是一個離散的集合,比如我們可用這種方式對全國省份這個字段做切片,把流量特別大的省份單獨切一個片,把流量小的幾個省份組合切分一片,把國外的訪問或不是國內省份的切分為一片;這種切片有點類似給shardkey做分類;不管用什么方式去做分片,我們盡可能的遵循寫操作要越分散越好,讀操作要越集中越好;
 
  6、mongodb分片集群搭建
 
 
  基礎環境,各server做時間同步,關閉防火墻,關閉selinux,ssh互信,主機名解析
 
  主機名解析
 
[root@node01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1   localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.99 time.test.org time-node
192.168.0.41 node01.test.org node01
192.168.0.42 node02.test.org node02
192.168.0.43 node03.test.org node03
192.168.0.44 node04.test.org node04
192.168.0.45 node05.test.org node05
192.168.0.46 node06.test.org node06
192.168.0.47 node07.test.org node07
192.168.0.48 node08.test.org node08
192.168.0.49 node09.test.org node09
192.168.0.50 node10.test.org node10
192.168.0.51 node11.test.org node11
192.168.0.52 node12.test.org node12
[root@node01 ~]#
  準備好基礎環境以后,配置mongodb yum源
 
[root@node01 ~]# cat /etc/yum.repos.d/mongodb.repo
[mongodb-org]
name = MongoDB Repository
baseurl = https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/4.4/x86_64/
gpgcheck = 1
enabled = 1
gpgkey = https://www.mongodb.org/static/pgp/server-4.4.asc
[root@node01 ~]#
  將mongodb yum源復制給其他節點
 
[root@node01 ~]# for i in {02..10} ; do scp /etc/yum.repos.d/mongodb.repo node$i:/etc/yum.repos.d/; done
mongodb.repo                 100% 206 247.2KB/s 00:00
mongodb.repo                 100% 206 222.3KB/s 00:00
mongodb.repo                 100% 206 118.7KB/s 00:00
mongodb.repo                 100% 206 164.0KB/s 00:00
mongodb.repo                 100% 206 145.2KB/s 00:00
mongodb.repo                 100% 206 119.9KB/s 00:00
mongodb.repo                 100% 206 219.2KB/s 00:00
mongodb.repo                 100% 206 302.1KB/s 00:00
mongodb.repo                 100% 206 289.3KB/s 00:00
[root@node01 ~]#

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 毛片大全 | 免费观看在线 | 一级裸体视频 | 欧美成人精品欧美一级乱黄 | 九九热精品视频在线 | 色毛片 | 精品亚洲视频在线观看 | 在线中文资源免费 | 看一级毛片| 97视频| 亚洲男人一区 | 羞羞视频一区 | 日本不卡一区二区在线观看 | 国产精品剧情一区二区三区 | 欧美国产精品久久 | 日韩精品羞羞答答 | 日韩视频一区二区三区四区 | 97中文字幕第一一一页 | 最近国产中文字幕 | 欧美 日韩 国产 在线 | 午夜看毛片 | 九一国产精品 | 亚洲精品在线观看免费 | 欧美巨乳在线观看 | av电影在线观看网址 | 欧美久久一区二区 | 午夜视频免费播放 | 亚洲电影在线观看高清免费 | 羞羞的动漫在线观看 | 毛片视频观看 | 偿还电影免费看 | 成人18免费观看 | 56av国产精品久久久久久久 | 欧美三级欧美成人高清www | 狠狠干91 | 亚洲骚综合 | 国产精品高潮99久久久久久久 | 久久精品视频1 | 亚洲极色 | 深夜免费福利视频 | 欧美黑人伦理 |