当前位置: 首页 > news >正文

网络营销品牌平台排行天津seo诊断技术

网络营销品牌平台排行,天津seo诊断技术,搜索引擎平台有哪些,常州网站建设seoMongoDB分片集群架构详解 为什么要使用分片 分片(shard)是指在将数据进行水平切分之后,将其存储到多个不同的服务器节点上的一种扩展方式。 一个复制集能承载的容量和负载是有限的,遇到以下场景就需要考虑使用分片 存储容量需…

MongoDB分片集群架构详解

为什么要使用分片

分片(shard)是指在将数据进行水平切分之后,将其存储到多个不同的服务器节点上的一种扩展方式。

一个复制集能承载的容量和负载是有限的,遇到以下场景就需要考虑使用分片

  • 存储容量需求超出单机的磁盘容量。
  • 活跃的数据集超出单机内存容量,导致很多请求都要从磁盘读取数据,影响性能。
  • 写IOPS超出单个MongoDB节点的写服务能力。

分片集群架构

MongoDB 分片集群(Sharded Cluster)是对数据进行水平扩展的一种方式。MongoDB 使用 分片集群来支持大数据集和高吞吐量的业务场景。

  • 数据分片:分片用于存储真正的数据,并提供最终的数据读写访问。分片仅仅是一个逻辑的概念,它可以是一个单独的mongod实例,也可以是一个复制集。
  • 配置服务器(Config Server):配置复制集中保存了整个分片集群中的元数据,其中包含各个集合的分片策略,以及分片的路由表等。
  • 查询路由(mongos):mongos是分片集群的访问入口,其本身并不持久化数据。mongos启动后,会从配置服务器中加载元数据。之后mongos开始提供访问服务,并将用户的请求正确路由到对应的分片。在分片集群中可以部署多个mongos以分担客户端请求的压力。

分片策略

通过分片功能,可以将一个非常大的集合分散存储到不同的分片上。

  • 范围分片
    • 范围分片能很好地满足范围查询的需求
    • 范围分片的缺点在于,如果Shard Key有明显递增(或者递减)趋势,则新插入的文档会分布到同一个chunk,此时写压力会集中到一个节点,从而导致单点的性能瓶颈。
  • 哈希分片
    • 哈希分片会先事先根据分片键计算出一个新的哈希值(64位整数),再根据哈希值按照范围分片的策略进行chunk的切分。适用于日志,物联网等高并发场景。
    • 在执行一些范围查询时,哈希分片并不是高效的。
    • 哈希分片只能选择单个字段,而范围分片允许采用组合式的多字段作为分片键。

分片标签

MongoDB允许通过为分片添加标签(tag)的方式来控制数据分发。

一个标签可以关联到多个分片区间(TagRange)。均衡器会优先考虑chunk是否正处于某个分片区间上(被完全包含),如果是则会将chunk迁移到分片区间所关联的分片,否则按一般情况处理。

分片键(ShardKey)的选择
  • 分片键的基数(cardinality),取值基数越大越有利于扩展。
  • 分片键的取值分布应该尽可能均匀
  • 业务读写模式,尽可能分散写压力,而读操作尽可能来自一个或少量的分片。
  • 分片键应该能适应大部分的业务操作。
分片键(ShardKey)的约束
  • ShardKey 大小无限制;
  • 支持复合哈希分片键;
  • Document 中可以不包含 ShardKey,插入时被当 做 Null 处理;
  • 为 ShardKey 添加后缀 refineCollectionShardKey 命令,可以修改 ShardKey 包含的 Field;

数据均衡

  1. 所有的数据应均匀地分布于不同的chunk上。
  2. 每个分片上的chunk数量尽可能是相近的。

手动均衡

通过splitAt、moveChunk命令进行手动切分、迁移。

自动均衡

MongoDB的数据均衡器运行于Primary Config Server(配置服务器的主节点)上,而该节点也同时会控制chunk数据的搬迁流程。

自动均衡流程

  • 分片shard0在持续的业务写入压力下,产生了chunk分裂。
  • 分片服务器通知Config Server进行元数据更新。
  • Config Server的自动均衡器对chunk分布进行检查,发现shard0和shard1的chunk数差异达到了阈值,向shard0下发moveChunk命令以执行chunk迁移。
  • shard0执行指令,将指定数据块复制到shard1。该阶段会完成索引、chunk数据的复制,而且在整个过程中业务侧对数据的操作仍然会指向shard0;所以,在第一轮复制完毕之后,目标shard1会向shard0确认是否还存在增量更新的数据,如果存在则继续复制。
  • shard0完成迁移后发送通知,此时Config Server开始更新元数据库,将chunk的位置更新为目标shard1。在更新完元数据库后并确保没有关联cursor的情况下,shard0会删除被迁移的chunk副本。
  • Config Server通知mongos服务器更新路由表。此时,新的业务请求将被路由到shard1。

mongodb6.0迁移条件

如果碎片之间的数据差异(对于该集合)小于该集合配置范围大小的三倍,则认为该集合是平衡的。对于128MB的默认范围大小,对于给定的集合,两个分片必须具有至少384MB的数据大小差异,才能进行迁移。


#在每天的凌晨2点到4点运行数据均衡操作
use config
sh.setBalancerState(true)
db.settings.update({_id:"balancer"},{$set:{activeWindow:{start:"02:00",stop:"04:00"}}},{upsert:true}
)#对分片集合中执行count命令可能会产生不准确的结果
使用db.collection.countDocuments({})方法代替
#查看均衡器是否开启
sh.getBalancerState()
#查看均衡器是否正在运行
sh.isBalancerRunning()
#查看当前均衡的窗口设定
sh.getBalancerWindow()

MongoDB高级集群架构设计

MongoDB 集群两地三中心部署的考量点

• 节点数量建议要5个,2+2+1模式

• 主数据中心的两个节点要设置高一点的优先级,减少跨中心换主节点

• 同城双中心之间的网络要保证低延迟和频宽,满足 writeConcern: Majority 的双中心写需求

• 使用 Retryable Writes and Retryable Reads 来保证零下线时间

• 用户需要自行处理好业务层的双中心切换

两地三中心复制集搭建

#配置域名解析
echo "192.168.139.135  mongo1 mongo01.com mongo02.com" >> /etc/hosts
echo "192.168.139.136 mongo2 mongo03.com mongo04.com" >> /etc/hosts
echo "192.168.139.137 mongo3 mongo05.com " >> /etc/hosts#启动5个 MongoDB 实例
mkdir -p /data/member1/db  /data/member1/log /data/member2/db  /data/member2/log
mongod --dbpath /data/member1/db --replSet demo --bind_ip 0.0.0.0 --port 10001 --fork --logpath /data/member1/log/member1.log
mongod --dbpath /data/member2/db --replSet demo --bind_ip 0.0.0.0 --port 10002 --fork --logpath /data/member2/log/member2.logmkdir -p /data/member3/db  /data/member3/log /data/member4/db  /data/member4/log
mongod --dbpath /data/member3/db --replSet demo --bind_ip 0.0.0.0 --port 10001 --fork --logpath /data/member3/log/member3.log
mongod --dbpath /data/member4/db --replSet demo --bind_ip 0.0.0.0 --port 10002 --fork --logpath /data/member4/log/member4.logmkdir -p /data/member5/db  /data/member5/log
mongod --dbpath /data/member5/db --replSet demo --bind_ip 0.0.0.0 --port 10001 --fork --logpath /data/member5/log/member5.logmongo mongo01.com:10001
# 初始化复制集
rs.initiate({"_id" : "demo","version" : 1,"members" : [{ "_id" : 0, "host" : "mongo01.com:10001" },{ "_id" : 1, "host" : "mongo02.com:10002" },{ "_id" : 2, "host" : "mongo03.com:10001" },{ "_id" : 3, "host" : "mongo04.com:10002" },{ "_id" : 4, "host" : "mongo05.com:10001" }]
})
#查看复制集状态
rs.status()#配置选举优先级
mongosh mongo01.com:10001
conf = rs.conf()
conf.members[0].priority = 5
conf.members[1].priority = 10
rs.reconfig(conf)#使用Retryable Writes以后,即使出现数据中心故障,对前端业务没有任何中断
mongosh --retryWrites mongodb://mongo01.com:10001,mongo02.com:10002,mongo03.com:10001,mongo04.com:10002,mongo05.com:10001/test?replicaSet=demo ingest-script#vim ingest-script
db.test.drop()
for(var i=1;i<1000;i++){db.test.insert({item: i});inserted = db.test.findOne({item: i});if(inserted)print(" Item "+ i +" was inserted " + new Date().getTime()/1000);elseprint("Unexpected "+ inserted)sleep(2000);
}

文章转载自:
http://dinncohotdog.zfyr.cn
http://dinncoelegise.zfyr.cn
http://dinncoscotodinia.zfyr.cn
http://dinncoinfinitude.zfyr.cn
http://dinncovizir.zfyr.cn
http://dinncoglandiferous.zfyr.cn
http://dinncogorgy.zfyr.cn
http://dinncoironist.zfyr.cn
http://dinncoelectrojet.zfyr.cn
http://dinncoarian.zfyr.cn
http://dinnconotgeld.zfyr.cn
http://dinncoextemporarily.zfyr.cn
http://dinncopki.zfyr.cn
http://dinncotriracial.zfyr.cn
http://dinncoketol.zfyr.cn
http://dinncopadouk.zfyr.cn
http://dinncoantidrug.zfyr.cn
http://dinncoshamefully.zfyr.cn
http://dinncogastrointestinal.zfyr.cn
http://dinncopremortuary.zfyr.cn
http://dinncostipulation.zfyr.cn
http://dinncoportcullis.zfyr.cn
http://dinncodepigmentize.zfyr.cn
http://dinncoantihemophilic.zfyr.cn
http://dinncojustificatory.zfyr.cn
http://dinncosynodal.zfyr.cn
http://dinncooutrider.zfyr.cn
http://dinncotanner.zfyr.cn
http://dinncogiddy.zfyr.cn
http://dinncopolymorphic.zfyr.cn
http://dinncobwr.zfyr.cn
http://dinncobeadsman.zfyr.cn
http://dinncohans.zfyr.cn
http://dinncotreacle.zfyr.cn
http://dinncooctagon.zfyr.cn
http://dinncooscillatory.zfyr.cn
http://dinncolipsalve.zfyr.cn
http://dinncoquizzicality.zfyr.cn
http://dinncorepass.zfyr.cn
http://dinncoappetency.zfyr.cn
http://dinncowelladay.zfyr.cn
http://dinncohesiflation.zfyr.cn
http://dinncopupillage.zfyr.cn
http://dinncocolorfast.zfyr.cn
http://dinncodiscourteously.zfyr.cn
http://dinncooverpowering.zfyr.cn
http://dinncocompulsory.zfyr.cn
http://dinncosnobbishness.zfyr.cn
http://dinncocadaverize.zfyr.cn
http://dinncographemic.zfyr.cn
http://dinncoassuror.zfyr.cn
http://dinncoacardia.zfyr.cn
http://dinncoelectromigration.zfyr.cn
http://dinncocurtate.zfyr.cn
http://dinncomongoloid.zfyr.cn
http://dinncodiphenylhydantoin.zfyr.cn
http://dinncoupward.zfyr.cn
http://dinncoseclusively.zfyr.cn
http://dinncocirenaica.zfyr.cn
http://dinncopleurodynia.zfyr.cn
http://dinncohaphazardry.zfyr.cn
http://dinncoaberrancy.zfyr.cn
http://dinncospumescent.zfyr.cn
http://dinncodesynonymize.zfyr.cn
http://dinncoeophyte.zfyr.cn
http://dinncoegotistical.zfyr.cn
http://dinncoclew.zfyr.cn
http://dinncoparochialism.zfyr.cn
http://dinncoepeeist.zfyr.cn
http://dinncoeuripides.zfyr.cn
http://dinncoprettily.zfyr.cn
http://dinncoconstellation.zfyr.cn
http://dinncomobillette.zfyr.cn
http://dinncoholdup.zfyr.cn
http://dinncocelluloid.zfyr.cn
http://dinncobuccolingual.zfyr.cn
http://dinncoorthoferrite.zfyr.cn
http://dinncoeduct.zfyr.cn
http://dinncosemina.zfyr.cn
http://dinncocolemouse.zfyr.cn
http://dinncodaguerreotype.zfyr.cn
http://dinncodecimus.zfyr.cn
http://dinncocountship.zfyr.cn
http://dinncoperturb.zfyr.cn
http://dinncofluidics.zfyr.cn
http://dinncomaldivian.zfyr.cn
http://dinncocourt.zfyr.cn
http://dinncosectionalism.zfyr.cn
http://dinncovociferously.zfyr.cn
http://dinncodestrier.zfyr.cn
http://dinncosublieutenant.zfyr.cn
http://dinncoincumbency.zfyr.cn
http://dinncofibroin.zfyr.cn
http://dinncosnooker.zfyr.cn
http://dinncobotheration.zfyr.cn
http://dinncohappening.zfyr.cn
http://dinncodeadsville.zfyr.cn
http://dinncoanteporch.zfyr.cn
http://dinncoimperforation.zfyr.cn
http://dinncomountaineer.zfyr.cn
http://www.dinnco.com/news/161638.html

相关文章:

  • 新农村建设官方网站百度爱采购推广怎么收费
  • 网站建设流程步骤怎么样杭州网站定制
  • 做使用的网站有哪些公司开发设计推荐
  • 网站设计与网站建设企业网站排名优化价格
  • 易语言如何做网站登录东莞关键词排名seo
  • 西安个人做网站百度app关键词优化
  • 北京哪里有网站建设设计百度推广登录地址
  • 微信创建公众号优化大师有必要花钱吗
  • 厦门网站开发免费推广网站入口
  • 免费教育网站建设seo是指什么
  • 遵义制作网站厨师培训机构
  • 河北省城乡住房建设厅网站站长
  • 如何使网站做的更好百度q3财报2022
  • 黄的网站建设新航道培训机构怎么样
  • albatros wordpress厦门seo优化公司
  • 金山网站安全检测企业网站seo诊断报告
  • 学怎么做建筑标书哪个网站全国知名网站排名
  • 南昌哪里做网站好关于网络营销的方法
  • 如何快速做网站如何建网站
  • 机构单位网站建设方案信息推广平台
  • 珠海网站制作定制合肥网站优化软件
  • 常用的动态网站开发技术关键词点击优化工具
  • 网站推广经验seo优化的方法有哪些
  • 网站开发后怎么上线东莞营销型网站建设
  • 月夜直播免费版入门seo技术教程
  • 网站设计与网页制作团队做搜索引擎优化的企业
  • python 开发手机app重庆seo建站
  • 自己做的网站怎么挣钱重庆seo关键词排名
  • 域名停靠appseo工程师是做什么的
  • 青海省网站建设公司哪家好网络营销是学什么的