开发者社区> 问答> 正文

MongoDB 使用场景及运维管理问题交流探讨

MongoDB是一个开源的文档型数据库(Document-oriented database),其灵活的文档模型使得其非常适合于快速开发迭代、需求多变的业务场景,MongoDB 支持复制集(Replica Set)、分片集群(Sharded Cluster)两种部署形态,能很好的服务高可用、水平扩展的大数据应用,目前在电商、游戏、物联网等场景都着有广泛的应用。
大家一起来分享下使用 MongoDB 的业务场景,以及在使用过程中遇到的问题,集思广益,让大家都能用好 MongoDB。
[/url]




下面是云栖社区网友的热议回答:




来自云栖网友:hunter_dong
我们第一次使用,目前使用情况下,php mongodb驱动感觉有问题呢。使用的是mongodb这个驱动,大量长连接,貌似也没有其他方法close。有多少fpm进程,就有多少连接。在副本集的情况话,一个fpm会跟所有副本集机器建立长连接。。。。这样吃不消啊。。。一台web服务器,200个fpm进程,副本集是3台机器,就有600个长连接在那里呢。所以,这个是不是不太妥当呢。




来自云栖网友:lifubang
我们用mongodb已经两年了,mongo副本集和分片都用了,已经跑了快上亿的数据了,目前有2个问题:1、副本集既然支持读写分离,那么能否让主库和从库有不同的索引?因为写数据时,如果索引太多,会增加写开销,所以我想在主库上少建一点索引(只建update要使用的索引),而在从库上多建一些索引;2、有没有什么好方法实现副本集a中的一个从库作为副本集b中的主库?因为我想把a中的数据实时重放到b中去进行复杂的使用,这个复杂的使用会影响到a的效率;在b中所作的任何更改,不用体现在a中。目前我是通过写一个程序,从a中去拉取oplog.rs,在b中重放。但是由于oplog.rs无法加索引,所以每次根据时间戳ts进行查询都较慢。




来自云栖网友:天痕散华
前来支持一下帅气的友东。业务场景:1. 用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用MongoDB。2. 用在一些第三方信息的获取或者抓取,因为MongoDB的schema-less,所有格式灵活,不用为了各种格式不一样的信息专门设计统一的格式,极大得减少开发的工作。遇到的问题:1. 以运维的身份,很难去推动开发使用mongodb,详细的使用/开发案例比较少。也无法就API层面对开发进行指导。2. sharding的一致性备份、增量备份、恢复。实施起来还是比较麻烦的。3. 副本集的mongod或者分片的mongos上端,不知道有什么可用的均匀负载。


来自云栖网友:屋顶小黑猫
问个简单问题 就是我们现在mongo架构在云上 想迁移下来 不知道选择2.6还是3.0以上版本不明白他们之间的主要区别。还有就是迁移过程中需要注意哪些问题,后续的优化有什么需要做的,mongo主要用于读




来自云栖网友:塞尔鱼

  1. node.js开发蜜汁偏爱mongodb,mongoose是各大数据库产品里面最好的node.js sdk。

  2. schema比较灵活的情况下,综合稳定性、性能、易用性上的考虑来看,mongodb是一个不错的选择,相对于Hbase/Cassandra/Scylladb而言;当然,不在乎存储效率,非常在意查询效率的话,es也是可以的。



[url=https://yq.aliyun.com/roundtable/42344?spm=5176.8217306.rtmain.12.OPDr44]欢迎大家积极参与讨论,原话题地址

展开
收起
云栖技术 2017-05-02 10:08:14 3628 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
可视化架构运维实践 立即下载
2021云上架构与运维峰会演讲合集 立即下载
MySQL 技术大全:开发、优化与运维实战 立即下载