mongodb 集群搭建的方式有三种:
其中,第一种方式基本没什么意义,官方也不推荐这种方式搭建。另外两种分别就是副本集和分片的方式。Mongo分片高可用集群搭建
其利用到了四个组件:mongos,config server,shard,replica setmongos
整体架构涉及到15个节点,我们这里使用Docker容器进行部署
那么我们先来总结一下我们搭建一个高可用集群需要多少个Mongo
本次使用Docker环境进行搭建,需要提前准备好Docker环境创建Docker网络
因为需要使用Docker搭建MongoDB集群,所以先创建Docker网络
我们先来搭建ConfigServer的副本集,这里面涉及到三个节点,我们需要创建配置文件以及启动容器创建挂载目录
我们需要创建对应的挂载目录来存储配置文件以及日志文件
因为我们知道搭建的话一定要高可用,而且一定要权限,这里mongo之间通信采用秘钥文件,所以我们先进行生成密钥文件
因为由多个容器,配置文件是一样的,我们只需要创建一个配置文件,其他的容器统一读取该配置文件即可
进入第一台容器
执行以下命令进行MongoDB容器的初始化
如果出现OK表示MongoDB配置服务器已经初始化成功
因为我们需要对用户进行权限管理,我们需要创建用户,这里为了演示,我们创建超级用户 权限是root
这样就在MongoDB的admin数据库添加了一个用户名为root 密码是root的用户
由于mongos是客户端,所以我们先搭建好config以及shard之后再搭建mongos。创建挂载目录
我们先创建挂载目录
在同一台服务器上初始化一组分片创建密钥文件
因为集群只需要一个密钥文件,我们可以将config-server中的密钥文件复制过来
因为有多个容器,配置文件是一样的,我们只需要创建一个配置文件,其他的容器统一读取该配置文件即可
并且制定第三个副本集为仲裁节点
登录后进行初始化节点,这里面arbiterOnly:true是设置为仲裁节点
显示OK即副本集创建成功
因为我们需要对用户进行权限管理,我们需要创建用户,这里为了演示,我们创建超级用户 权限是root
因为集群只需要一个密钥文件,我们可以将config-server中的密钥文件复制过来
因为有多个容器,配置文件是一样的,我们只需要创建一个配置文件,其他的容器统一读取该配置文件即可
登录节点后进行初始化分片2
执行下面的命令进行初始化分片2,arbiterOnly:true参数是设置为仲裁节点
返回ok就表示
因为我们需要对用户进行权限管理,我们需要创建用户,这里为了演示,我们创建超级用户 权限是root
因为集群只需要一个密钥文件,我们可以将config-server中的密钥文件复制过来
因为有多个容器,配置文件是一样的,我们只需要创建一个配置文件,其他的容器统一读取该配置文件即可
登录节点后进行初始化分片2
执行下面的命令进行初始化分片3,arbiterOnly:true参数是设置为仲裁节点
因为我们需要对用户进行权限管理,我们需要创建用户,这里为了演示,我们创建超级用户 权限是root
mongos负责查询与数据写入的路由,是实例访问的统一入口,是一个无状态的节点,每一个节点都可以从config-server节点获取到配置信息创建挂载目录
我们需要创建对应的挂载目录来存储配置文件以及日志文件
因为集群只需要一个密钥文件,我们可以将config-server中的密钥文件复制过来
因为有多个容器,配置文件是一样的,我们只需要创建一个配置文件,其他的容器统一读取该配置文件即可,因为Mongos只负责路由,就不需要数据文件了,并且mongos服务是不负责认证的,需要将authorization配置项删除
因为mongos是无中心的配置,所有需要每一台都需要进行分片配置进入容器
使用前面设置的root用户密码
进行配置分片信息
因为mongos是无中心的配置,所有需要每一台都需要进行分片配置进入容器
使用前面设置的root用户密码
进行配置分片信息
因为mongos是无中心的配置,所有需要每一台都需要进行分片配置进入容器
使用前面设置的root用户密码
进行配置分片信息
使用docker-compos方式启动Docker容器
执行下面脚本进行容器初始化
本文由传智教育博学谷 - 狂野架构师教研团队发布
如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力
转载请注明出处!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |