当前播放: 26 | 分片集群设计
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:MongoDB再入门 (12讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 认识文档数据库MongoDB
免费
04 | MongoDB特色及优势
免费
05 | 实验:安装MongoDB
免费
06 | MongoDB基本操作
07 | 实验:Hello World程序开发
08 | 聚合查询
09 | 实验:聚合查询
10 | 复制集机制及原理
11 | 实验:搭建MongoDB复制集
12 | MongoDB全家桶
第二章:从熟练到精通的开发之路 (12讲)
13 | 模型设计基础
14 | JSON文档模型设计特点
15 | 文档模型设计之一:基础设计
16 | 文档模型设计之二:工况细化
17 | 文档模型设计之三:模式套用
18 | 设计模式集锦
19 | 事务开发:写操作事务
20 | 事务开发:读操作事务之一
21 | 事务开发:读操作事务之二
22 | 事务开发:多文档事务
23 | Change Stream
24 | MongoDB开发最佳实践
第三章:分片集群与高级运维之道 (16讲)
25 | 分片集群机制及原理
26 | 分片集群设计
27 | 实验:分片集群搭建及扩容
28 | MongoDB监控最佳实践
29 | MongoDB备份与恢复
30 | 备份与恢复操作
31 | MongoDB安全架构
32 | MongoDB安全加固实践
33 | MongoDB索引机制(一)
34 | MongoDB索引机制(二)
35 | MongoDB读写性能机制
36 | 性能诊断工具
37 | 高级集群设计:两地三中心
38 | 实验:搭建两地三中心集群
39 | 高级集群设计:全球多写
40 | MongoDB上线及升级
第四章:企业架构师进阶之法 (13讲)
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 | 结束语
26 | 分片集群设计

26 | 分片集群设计

唐建法(TJ)
Tapdata CTO、MongoDB中文社区主席、前MongoDB大中华区首席架构师
53讲 约500分钟4218
单独订阅¥129
2人成团¥99
2
本节摘要

下次更新时间为:2020 年 1 月 15 日
课件和 Demo 地址
https://github.com/geektime-geekbang/geektime-mongodb-course

展开
登录 后留言

精选留言(7)

  • 月迷津渡
    这里有个问题没理解,工作集大小是热数据加索引数据,隐含的意思就是索引数据和热数据都是全量在内存里的?如果是的话,索引数据是mongodb自己维护在内存的?热数据是自己应用程序维护在内存里的?

    作者回复: mongodb使用LRU算法对缓存数据进行管理。热数据和索引数据,他们本身的特性就决定了会经常被访问。你只要提供足够大小的缓存空间,他们自然就会被mongo留在缓存里,因为被经常访问缘故。

    应用程序不用自己维护缓存数据。

    2020-01-24
    2
  • Jason
    老师,请教一个问题,数据大小与机器配置有没有经验换算方式,比如1TB数据,1主2从复制集,单台服务器需要多大的配置,CPU、内存,还是需要模拟压测

    作者回复: 官方没有标准算法 - 根据workload的不同,硬件配置可以差别很大。你可以参考MongoDB Atlas上面有个机器大小可以支持的Connections,所以从应用要支持的连接数,可以做一个反推。但是并不考虑你的数据量,所以只是个概括估计。

    https://docs.atlas.mongodb.com/connection-limits/index.html

    2020-01-11
    1
  • Hoboson!
    问题现象:
    {"errInfo":{"code":"500","msg":"Command failed with error 13: 'not authorized on user1 to execute command { $eval: \"db.getCollection(\"CCDataVO\").insert
    处理方法:
    db.createRole( { role: "executeFunctions", privileges: [ { resource: { anyResource: true }, actions: [ "anyAction" ] } ], roles: [] } )
    db.grantRolesToUser("user1", [ { role: "executeFunctions", db: "user1" } ])
    但是授权只能给admin下面的用户授权, 不能给user1库下面的用户授权,授权失败
    2020-03-11
  • Hoboson!
    老师好:我们生产使用的是分片模式,但是有一个集合没有建片键,这个集合现在太大了占了7.4TB,
    1:现在怎么建片键,可以建吗?
    2:建了片键之后会不会影响之前的数据查询

    作者回复: 1)可以,直接用shardCollection就可以
    2)不会。

    数据均衡可能会花很长时间(数天),这是正常的。

    2020-03-04
    1
  • 沈洪彬
    关于分片这个感觉和 mysql+mycat这种差不多。这里有个疑问:
      如果查询没有使用分表键,那么理论上查询会分发到多有的具体集群执行。那么这个结果的汇总(可能存在排序/分组) 在那里做呢? 是在mongos的内存上,还是config的内存上? mycat那种实在mycat中间件机器上,但是我看前面说mongos是无状态的

    作者回复: 在某一个shard的主节点上进行合并排序。

    “mongos 是无状态的“ - 合并排序操作不需要记状态。但是确实不是在mongos做的。

    和mysql/mycat架构上类似,但是对应用基本是全透明,使用上几乎和未分片的复制集没有区别。对程序员的使用体验更好

    2020-02-27
  • t86
    老师,用userid加time做片键,在查询时会有需要等待多个分片的结果一起返回的问题吗?

    作者回复: 如果你的查询条件里有userid,就不会用到多个分片。
    如果你的查询条件里没有userid,就会发散到多个片

    2020-01-19
  • t86
    老师,分片除了基于数据量是不是也要考虑集合内部的数据数量大小考虑?之前好像您有说上亿条还是多少以后读写性能也会显著变差,这种情况是不是也要考虑分片?

    作者回复: 是的,分片不仅仅是数据量(我想你指的是行数),也和存储/IOPS有关系,还有内存/客户端连接数都有关系。 在课程内这一点我有明确说明。

    2020-01-18
收起评论
看过的人还看
Elasticsearch核心技术与实战

阮一鸣  eBay Pronto平台技术负责人

100讲 | 18812 人已学习

拼团 ¥99 原价 ¥129
设计模式之美

王争  前Google工程师,《数据结构与算法之美》专栏作者

100讲 | 21388 人已学习

拼团 ¥129 原价 ¥199
数据结构与算法之美

王争  前Google工程师

79讲 | 76969 人已学习

拼团 ¥79 原价 ¥99
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

48讲 | 48113 人已学习

拼团 ¥79 原价 ¥99