MongoDB
-
- 简介:
-
- 1、优点和缺点:
- 2、MongoDB适用的业务场景:
- Centos7 搭建Mongodb 分片集群
-
- 一、安装MongoDB社区版4.0
-
- 1、配置程序包管理系统(`yum`)
- 2、安装对应版本的MongoDB软件包。
- 3、创建运行mongodb的目录并禁用SELinux
- 4、修改文件打开数
- 5、初始化系统
-
- 5.1、创建config配置服务器,配置文件mongoconfig.conf,并启动
- 5.2、创建shard服务器,shard 配置 mongd.conf
-
- 1)leojiang124、leojiang126 配置shard1
- 2)leojiang125、leojiang127 配置shard2副本集,shard.config配置文件修改<replication.replSetName>即可
- 3)arbiter :
- 4)启动副本集:
- 5)配置三成员副本集
- 5.3、创建mongos客户端指定配置服务器,配置mongos.conf
- 6、数据库添加内部安全认证
-
- 6.1、创建密钥文件
- 6.2、把生成的mongodb-keyfile文件拷贝到每个需要keyfile的服务器上,开启配置文件的注释
- 6.3、重启集群并生效:
- Data flow:
简介:
MongoDB是一个分布式非关系型数据库管理系统
1、优点和缺点:
优点:
1. 灵活的数据模型:MongoDB是面向文档的数据库,使用JSON格式存储数据,因此可以轻松地存储各种类型的数据,而不需要遵循严格的模式。
2. 可扩展性:MongoDB支持水平扩展,可以通过添加更多的服务器来处理大量的数据和流量,从而实现高可扩展性。
3. 高性能:MongoDB具有快速的读写速度,特别是在大型数据库和高并发访问的情况下。
4. 强大的查询功能:MongoDB支持丰富的查询功能,包括复杂的聚合查询、全文搜索等。
5. 自动故障转移:MongoDB具有自动故障转移功能,可以在主服务器故障时自动切换到备用服务器,提高了系统的可用性。
缺点:
1. 内存消耗较大:MongoDB在处理大规模数据时需要大量的内存来维护索引和缓存,这可能导致服务器成本较高。
2. 数据一致性问题:由于MongoDB的分布式特性,可能会存在数据一致性的问题,特别是在网络分区或节点故障时。
3. 复杂的查询:MongoDB的复杂查询性能可能不如传统的关系型数据库。
2、MongoDB适用的业务场景:
MongoDB适合许多不同类型的业务,特别是那些需要处理灵活数据模型、大规模写入、高性能读取和无需复杂事务支持的应用。
1. 内容管理系统(CMS):CMS通常需要处理多种类型的内容,如文章、图片、视频等,而这些内容的结构可能会经常变化。MongoDB的灵活的文档数据模型使其成为存储和管理此类内容的理想选择。
2. 实时分析和日志处理:MongoDB可以处理大规模的写入操作,因此非常适合存储实时生成的日志数据或其他实时事件数据。它还具有良好的读取性能,可以支持实时分析和查询。
3. 物联网(IoT)应用:物联网应用通常需要处理大量的传感器数据和设备数据,并且这些数据的结构可能是不确定的。MongoDB的灵活性和水平扩展性使其成为存储和处理物联网数据的良好选择。
4. 用户分析和个性化推荐:对于需要存储和分析大量用户数据,并基于这些数据进行个性化推荐或用户行为分析的应用程序,MongoDB是一个强大的工具。它可以轻松存储用户配置文件、行为数据等,并支持复杂的查询和分析。
Centos7 搭建Mongodb 分片集群
一、安装MongoDB社区版4.0
该集群由mongos、配置服务器config和两个三成员shard副本集组成。
组件分布:
ip | 组件 |
---|---|
leojiang123 | arbiter(shard1)、arbiter(shard2) |
leojiang124 | mongos、config、shard1(副) |
leojiang125 | mongos、config、shard2(副) |
leojiang126 | mongos、config、shard1(主) |
leojiang127 | mongos、shard2(主) |
端口选择:
组件 | 端口选择 |
---|---|
mongos | 20000 |
config | 27000 |
shard | 27001 |
arbiter | 27026、27027 |
1、配置程序包管理系统(yum
)
创建一个/etc/yum.repos.d/mongodb-org-4.0.repo
文件,以便您可以使用yum
以下命令直接安装MongoDB
- 分别在
leojiang123
~leojiang127
服务器上执行
cat > /etc/yum.repos.d/mongodb-org-4.0.repo << EOF
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
2、安装对应版本的MongoDB软件包。
- 分别在
leojiang123
~leojiang127
服务器上执行
sudo yum install -y mongodb-org-4.0.9 mongodb-org-server-4.0.9 mongodb-org-shell-4.0.9 mongodb-org-mongos-4.0.9 mongodb-org-tools-4.0.9
为防止意外升级,请固定包装。
echo 'exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools'>>/etc/yum.conf
3、创建运行mongodb的目录并禁用SELinux
- 根据自身情况分别在
leojiang123
~leojiang127
服务器上执行
mkdir -p /var/opt/mongodb/config
mkdir -p /var/opt/mongodb/mongos
mkdir -p /var/opt/mongodb/shard
mkdir -p /var/opt/mongodb/arbiter
chown -R mongod:mongod /var/opt/mongodb
禁用SELinux
vim /etc/sysconfig/selinux
SELINUX=disabled
setenforce 0
4、修改文件打开数
- 分别在
leojiang123
~leojiang127
服务器上执行
4.1、修改系统文件打开数
# 直接生效
ulimit -n 1000000
4.2、修改mongo最大文件打开数
cat > /etc/security/limits.d/99-mongodb.conf << LEO
#Default limit for number of user’s processes to prevent
# accidental fork bombs.
# # See rhbz #432903 for reasoning.
# #
# # * soft nproc 4096
# # root soft nproc unlimited
* soft nofile 1000000
* hard nofile 1000000
* soft fsize unlimited
* hard fsize unlimited
* soft cpu unlimited
* hard cpu unlimited
* soft nproc