【MongoDB训练营】第五课:ChangeStream使用及原理介绍 答疑汇总

1.shardkey唯一值+hash的 数据是不是会更好的均匀分布?
答:hash可以实现均与分布,举个例子,我们生产中会对已时间分区的日志进行二级或者混合分区,即以天|月作为一级分区,在以hash作为二级分区。

2.mongos 有默认的 hash 函数吗?是什么?还是可以由用户自定义?
答:mongodb 不可以自定义hash函数。

3.是不是只有分片才能用mongos?
答:只有分片shard集群才可以使用mongos

4.MongoDB 配置文件 能分享下么 学习参考
答:mongodb配置参数可以参考官网说明。

5.Change stream 断点续传如何解决oplog被覆盖的问题。change stream消息是推送还是基于mongoclient的拉取?使用mongoclient 时是长连接还是短链接?
答:断点续传不能解决op log被覆盖的问题,老师解释了两种op log被覆盖的可能原因:
一是各种原因导致的消费速度赶不上生产速度,
二是短时间内产生很多和我要抽取的目标不相关的日志
change stream是长连接。

6.同城异地的复制集,如何保证同步?
答:复制集保证同步 primary-secondary 通过拉取回放op log实现数据同步
change stream也可以实现这个功能,但是原理不同。

7.Change Stream 和触发器的区别是?如果有个场景,比如物流状态变化,我们怎么对接上?
答:从应用层面 change stream和触发器是一个概念,只能说是实现解决同一问题的两个思路,但是实现原理上这根本就没有相关性。

8.change stream对系统性能影响几何?
答: 对系统性能影响开销取决于你系统自身的负载如何,目前是单线程的操作,主要开销是在解析上,综合来看,影响是比较小的。

上一篇:【内含干货PPT下载】DTCC 2020 | 阿里云吉剑南:在线分析进入Fast Data时代的关键技术解读


下一篇:12.28直播预告| Bulkload - Lindorm加速离线数据查询的最佳实践