MongoDB 高手课
唐建法(TJ)
Tapdata CTO、MongoDB 中文社区主席、前 MongoDB 大中华区首席架构师
19351 人已学习
新⼈⾸单¥59
课程目录
已完结/共 53 讲
MongoDB 高手课
登录|注册
留言
23
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 25 | 分片集群机制及原理
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 认识文档数据库MongoDB
04 | MongoDB特色及优势
05 | 实验:安装MongoDB
06 | MongoDB基本操作
07 | 实验:Hello World程序开发
08 | 聚合查询
09 | 实验:聚合查询
10 | 复制集机制及原理
11 | 实验:搭建MongoDB复制集
12 | MongoDB全家桶
13 | 模型设计基础
14 | JSON文档模型设计特点
15 | 文档模型设计之一:基础设计
16 | 文档模型设计之二:工况细化
17 | 文档模型设计之三:模式套用
18 | 设计模式集锦
19 | 事务开发:写操作事务
20 | 事务开发:读操作事务之一
21 | 事务开发:读操作事务之二
22 | 事务开发:多文档事务
23 | Change Stream
24 | MongoDB开发最佳实践
25 | 分片集群机制及原理
26 | 分片集群设计
27 | 实验:分片集群搭建及扩容
28 | MongoDB监控最佳实践
29 | MongoDB备份与恢复
30 | 备份与恢复操作
31 | MongoDB安全架构
32 | MongoDB安全加固实践
33 | MongoDB索引机制(一)
34 | MongoDB索引机制(二)
35 | MongoDB读写性能机制
36 | 性能诊断工具
37 | 高级集群设计:两地三中心
38 | 实验:搭建两地三中心集群
39 | 高级集群设计:全球多写
40 | MongoDB上线及升级
41 | MongoDB应用场景及选型
42 | MongoDB典型案例(一)
43 | MongoDB典型案例(二)
44 | 关系型数据库迁移
45 | 数据库迁移方式及工具
46 | Oracle迁移实战
47 | MongoDB + Spark实时大数据
48 | MongoDB + Spark连接实战
49 | MongoDB SQL套接件
50 | MongoDB与微服务
51 | MongoDB与数据中台
52 | MongoDB数据中台案例
53 | 结果测试&结束语
登录 后留言

全部留言(23)

  • 最新
  • 精选
老师,数据量不是很大,如果要支撑百万并发,一般要如何设计,大概要多少个节点,用复制集还是分片集?

作者回复: 官方的建议不管读还是写,都用分片来解决。百万级的并发算是很大了,如果是点查为主的读操作占绝大多数,那么一个节点理论上支撑10万以上并发是可以的,当然必须是那种32/64 核高CPU的物理服务器。 Oppo的同学分享过单集群支撑100万+并发,该集群由14个分片组成,14x3共42台机器

2020-01-19
3
8
齐宝金
mongodump --port 27019 -d local -c oplog.rs -q '{ts:{$lt:Timestamp(1415928580, 1),$gt: Timestamp(1415928529, 1000)}}' -o /tmp/ 2020-01-14T19:13:54.024+0800 Failed: error parsing query as Extended JSON: invalid JSON input 请问老师,之前这个命令是可以执行的,现在发现一执行,就报错,请问下是啥原因,谢谢老师

作者回复: 我可以执行。。。 MacBook-Pro-4:tmp tjworks$ mongodump -d local -c oplog.rs -q '{ts:{$lt:Timestamp(1415928580, 1),$gt: Timestamp(1415928529, 1000)}}' 2020-01-16T08:01:22.401+0800 writing local.oplog.rs to 2020-01-16T08:01:22.414+0800 done dumping local.oplog.rs (0 documents) MacBook-Pro-4:tmp tjworks$

2020-01-14
2
2
不经意间
老师您好,看视频得知configsrv节点很重要,它保存了分片集群的元数据。如果这个节点的数据因为一些原因损坏、丢失了,那集群里的各个分片还能重新组成一个新的分片集群吗? 还有一个问题,我开启数据库分片并给集合添加分片键后,开启集合分片时,开启操作会卡一小会(大概30秒)然后提示操作超时,这有可能是什么原因导致的啊?我的复制集各节点之间是可以正常访问的。百度查到的是3.2.3的一个bug,升级到3.2.10就好了,但是还没测试。我使用的版本正是3.23。

作者回复: 各个分片的数据理论上是互不重叠的,所以如果配置服务器坏的话,你将无法组成一个新的分片集群,但是你的数据可以合并起来组成非分片的集群。 当然,考虑到分片集群某一时间点会有正在分片之间迁移的数据,这个数据合并还是有点风险。 所以你的配置服务器,也是需要3个节点来保证数据的可靠性。

2020-01-08
2
阿强
目前讲解最清晰的课程,体现在信息整理,表达逻辑,语速与停顿间隔,适度表情。体现出经常进行技术讲解的积累。 准备订阅,等我6号的优惠包到账。

作者回复: 谢谢您的认可!再接再厉!

2020-01-01
2
天涯咫尺间
老师,物联网场景下,听您讲的hash分片范围查询效果不好,那我可以使用联合索引吗?一个id和一个时间戳,id非自增。

作者回复: 可以。一般都会建议使用联合索引。你的选择看上去没问题。

2020-03-12
1
爱吃彩虹糖的猫~
这节开拓了视野,了解了MongoDB集群的大概知识,TJ很给力

作者回复: 棒棒的!

2020-01-30
1
金刚
老师,可以讲讲Mongodb数据清理方面最佳实践吗

作者回复: 我先mark一下你的问题,在更新完所有课程后我会考虑追加一些内容。

2020-01-03
2
1
崔伟协
分片mongos支持事务吗?

作者回复: 4.2 开始支持分片事务了。

2020-01-02
1
wayland
老师,mongodb还需要考虑分库分表吗,如果要考虑一般是在什么数量级别才分呢?

作者回复: 一般原则是不需要。 如果你的应用场景用不到数据合并(连统一报表都不需要),并且数据量级在10亿级以上,可以考虑作为一个特殊优化手段做分表。

2020-01-02
2
1
Mr.zhou
问题1:如何查看分片集群中哪个分片是主分片? 问题2:如果有三台服务器: IP224服务器启动:路由服务、配置服务、分片1、分片2、分片3 IP207服务器启动:路由服务、配置服务、分片1、分片2、分片3 IP208服务器启动:路由服务、配置服务、分片1、分片2、分片3 使用rs.status()查看分片结果如下: shards: { "_id" : "shard1", "host" : "shard1/X.X.X.207:27001,X.X.X.208:27001,X.X.X.224:27001", "state" : 1 } { "_id" : "shard2", "host" : "shard2/X.X.X.207:27002,X.X.X.208:27002,X.X.X.224:27002", "state" : 1 } { "_id" : "shard3", "host" : "shard3/X.X.X.207:27003,X.X.X.208:27003,X.X.X.224:27003", "state" : 1 } 今天,224服务器突然挂了。结果服务出现了问题,日志报错如下: ERROR com.bamboocloud.im.handler.process.ProcessHandlerProcesser$ProcessExecutorTaskRunnable 163 - Failed ProcessExecutorTaskRunnable com.mongodb.MongoQueryException: Query failed with error code 133 and error message 'Encountered non-retryable error during query :: caused by :: Could not find host matching read preference { mode: "primary" } for set shard1' on server X.X.X.207:27017 登录到mongodb集群发现:207服务器上只剩下路由服务、配置服务、分片2;208服务器上路由服务、配置服务、分片1、分片2、分片3都在。 我感觉,虽然224和207的shard1没了,但是208服务器上shard1还在呀!应该被选取为主shard呀?这样不应该影响业务才对呀?

作者回复: 选主基本条件:多数节点存活。 你的shard1本来应该有3个节点(分别在207,208,224),现在只剩208了,就会变成只读,secondary。你要再恢复shard1的一个节点才可以工作

2020-09-01
收起评论