使用mongodb shard cluster构建高可用的系统架构
2015-10-22 11:10
573 查看
在一个产品环境下,高可用是必须达到的目标。下图是mongodb 3.0之后的shard cluster架构图。
其实还有其他方法,比如通过LVS将多个mongos放在一个域名下,利用LVS的负载均衡。然后所有web server只通过这个域名发出查询/写入等请求。不过这个方法需要额外的LVS支持。一般情况下,1对1方案就已经够用
2. 部署程序的时候,请一同部署mongos。比如一个web服务器上有一个web server和一个mongos。web server总是访问本地运行的mongos,不需要指定一堆IP地址和端口号,那是访问replica set的方式。shard cluster模式下,反而简单了。
3. config server本质上是用mongod组成replica set,记录元数据。config server可以用三台低配的服务器,但是要独立,不要和shard, mongos放在一台服务器上。
几个要点
1. mongos实现了mongod一样的服务接口,监听相同的27017端口,mongos接到访问请求后,会根据sharding算法,将请求转发到对应的shard中,然后会将各个shard返回的结果合并后返回给请求方其实还有其他方法,比如通过LVS将多个mongos放在一个域名下,利用LVS的负载均衡。然后所有web server只通过这个域名发出查询/写入等请求。不过这个方法需要额外的LVS支持。一般情况下,1对1方案就已经够用
2. 部署程序的时候,请一同部署mongos。比如一个web服务器上有一个web server和一个mongos。web server总是访问本地运行的mongos,不需要指定一堆IP地址和端口号,那是访问replica set的方式。shard cluster模式下,反而简单了。
3. config server本质上是用mongod组成replica set,记录元数据。config server可以用三台低配的服务器,但是要独立,不要和shard, mongos放在一台服务器上。
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 如何在 Fedora 上安装 MongoDB 服务器
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 如何在 Ubuntu 上安装 MongoDB
- perl操作MongoDB报错undefined symbol: HeUTF8解决方法
- C#中使用1.7版本驱动操作MongoDB简单例子
- MongoDB系列教程(四):设置用户访问权限
- php实现的mongodb操作类实例
- 解决mongodb在ubuntu下启动失败,提示couldn‘t remove fs lock errno:9 Bad file descriptor的错误
- 在PostgreSQL的基础上创建一个MongoDB的副本的教程
- java操作mongodb示例分享
- php对mongodb的扩展(初出茅庐)
- 作为PHP程序员应该了解MongoDB的五件事
- 基于MySQL到MongoDB简易对照表的详解
- MongoDB入门教程之C#驱动操作实例
- MongoDB为用户设置访问权限
- MongoDB db.serverStatus()输出内容中文注释
- MongoDB的一些常用查询方法
- mongodb与mysql命令详细对比