目录MongoDB高并发写场景开启读写分离读从库为何阻塞? 我们该如何处理?

MongoDB 4.0有哪些新特性,你最期待的有哪些,为什么?

Redis如何获取所有的key,不阻塞?

MySQL中间件的性能测试和常规业务性能测试相比有什么不同?

一、MongoDB高并发写场景开启读写分离读从库为何阻塞? 我们该如何处理?

1、按业务拆分逻辑降低读写并发度

2、添加分片均衡读写

3、升级至即将到来的4.0通过读snapshot解决从库读阻塞

二、MongoDB 4.0有哪些新特性,你最期待的有哪些,为什么?

1、多文档事务的支持,解决了多文档操作的原子性问题

2、snapshot读相关支持,使得可在某个timestamp点上读到一个一致性的快照

3、Change Streams 支持实例及库级别粒度为业务提供了更多实时捕获变更的选择

4、聚合框架支持类型转换及字符前后空格截断操作

5、加入对SCRAM-SHA-256认证策略以支持更强的认证加密验证

6、提供通过简单的命令开启免费监控功能

7、更多的操作支持w:majority 比如对集合进行分片,创建删除集合等

8、listCollections 可以指定nameOnly:true 而不加锁

9、增加 rollbackTimeLimitSecs参数控制节点回滚的最大时间限制

10、支持直接在mongos路由节点直接kill具体操作无需按分片进行

11、使用WiredTiger引擎不允许关闭journal日志

三、Redis如何获取所有的key,不阻塞?

1、在slave上执行Save命令,拷贝rdb文件到其他redis实例上用于统计key。

2、可以利用scan命令,来遍历当前数据库中的数据库键。

四、MySQL中间件的性能测试和常规业务性能测试相比有什么不同?

性能测试的方法论基本都一样,以观察-分析-改进-再观察这个循环进行。

常规业务由于业务交互复杂、技术栈庞杂、性能瓶颈通常集中于业务, 性能测试使用的分析方法比较简单, 通过诊断业务通常可以低成本地找到性能瓶颈。

MySQL中间件的应用场景比较简单、技术栈稳定、性能瓶颈通常集中于架构和环境, 性能测试使用的分析方法比较多, 对性能瓶颈的分析通常成本比较高。另外在这一方面的现有知识积累并不很成体系, 也是成本较高的原因之一。