[MongoDB 集群模式] 项目第一次接入 MongoDB,求集群模式选择
需求:存储 xml 报文,初期只做简单的插入,查询,数据量比较大,内网部署。 目前了解的模式有两种:1 、Replication set;2 、sharding 。想问下有实际生产经验的大佬是怎么权衡选择的。感谢!!!
需求:存储 xml 报文,初期只做简单的插入,查询,数据量比较大,内网部署。 目前了解的模式有两种:1 、Replication set;2 、sharding 。想问下有实际生产经验的大佬是怎么权衡选择的。感谢!!!
也不是 dalao,只能说不管用啥,先压测一下看看能否达到你的性能要求
sharding 解决了数据集过大的问题。
两者不是二选一的关系。
按照你的需求来看,主要是要分片,但如果有可靠性要求,ReplicaSet 也是免不了的。
分片的坑很多,需要较高的熟练程度才能保证合理应用,虽好多做实验。
另外不管怎么说,MongoDB 都是实时业务用的数据库,看你的需求是否适合;如果需求更像日志储存和分析,可以考虑如 ELK 之类的框架;如果量极大,且有清洗、仓库和更复杂的统分需求,可能要考虑一些主流的大数据技术栈。
MongoDB 自己就是个流氓,早期 10gen 为了拉投资,故意把服务端写策略默认值设置为先响应落地成功再进行落地 + 落地失败就丢弃数据,来提高跑分吸引投资。
所以在国内用,不用管它 License,除非做国际化,那就要考虑一下了。我猜测后期 10gen 可能会走 Oracle 这种 1 个码农+10 个法务的配置来捞钱。
https://www.v2ex.com/t/630841
SSPL 跟使用者没有啥关系,是针对伸手党云厂商的,比如云厂商早年拿 MongoDB 的代码进行大量修改和优化,做成自己的服务赚钱,源码又不回馈给 MongoDB 社区,这种行为对开源社区的发展有很不好的影响。
目前如果你不是将 MongoDB 本身作为服务进行出售的话,是不受 SSPL 的影响的。
如果你是希望把任务异步化;即受到请求不马上处理,下游集群异步处理请求;可以考虑使用一些消息队列方案。消息队列可以作为一个缓冲区,对业务集群的负载进行削峰填谷,不会时而 200%负载、时而 50%负载,而是匀速 100%负载运行。