MongoDB分片+副本+keyFile认证(新手部署完整版)
MongoDB分片+副本+keyFile认证(新手部署完整版)
部署详情
服务器yhcs_1 IP:192.168.43.211 |
服务器yhcs_2 IP:192.168.43.212 |
服务器yhcs_3 IP:192.168.43.213 |
mongos |
mongos |
mongos |
config server |
config server |
config server |
shard server1 主节点 |
shard server1 副节点 |
shard server1 仲裁 |
shard server2 仲裁 |
shard server2 主节点 |
shard server2 副节点 |
shard server3 副节点 |
shard server3 仲裁 |
shard server3 主节点 |
搭建MongoDB分片副本集
解压安装包
[root@yhcs_1 ~]# tar -xvf mongodb-linux-x86_64-3.6.5.tgz -C /usr/local
[root@yhcs_1 ~]# cd /usr/local/
[root@yhcs_1 ~]# mv mongodb-linux-x86_64-3.6.5 mongodb
创建目录
#在每台机器上创建以下目录
[root@yhcs_1 ~]# mkdir -p /usr/local/mongodb/conf #配置文件
[root@yhcs_1 ~]# mkdir -p /usr/local/mongodb/mongos/log
[root@yhcs_1 ~]# mkdir -p /usr/local/mongodb/config/data #数据库文件
[root@yhcs_1 ~]# mkdir -p /usr/local/mongodb/config/log #日志
[root@yhcs_1 ~]# mkdir -p /usr/local/mongodb/shard1/data
[root@yhcs_1 ~]# mkdir -p /usr/local/mongodb/shard1/log
[root@yhcs_1 ~]# mkdir -p /usr/local/mongodb/shard2/data
[root@yhcs_1 ~]# mkdir -p /usr/local/mongodb/shard2/log
[root@yhcs_1 ~]# mkdir -p /usr/local/mongodb/shard3/data
[root@yhcs_1 ~]# mkdir -p /usr/local/mongodb/shard3/log
创建配置文件
#在每台机器上配置config.conf、shard1.conf、shard2.conf、shard3.conf、mongos.conf
[root@yhcs_1 ~]# vi /usr/local/mongodb/conf/config.conf
## 配置文件内容
pidfilepath = /usr/local/mongodb/config/log/config.pid
dbpath = /usr/local/mongodb/config/data
logpath = /usr/local/mongodb/config/log/config.log
logappend = true
bind_ip = 0.0.0.0
port = 24000
fork = true
#declare this is a config db of a cluster;
configsvr = true
#副本集名称
replSet=configs
#设置最大连接数
maxConns=20000
[root@yhcs_1 ~]# vi /usr/local/mongodb/conf/shard1.conf
#配置文件内容
pidfilepath = /usr/local/mongodb/shard1/log/shard1.pid
dbpath = /usr/local/mongodb/shard1/data
logpath = /usr/local/mongodb/shard1/log/shard1.log
logappend = true
bind_ip = 0.0.0.0
port = 25001
fork = true
#副本集名称
replSet=shard1
#declare this is a shard db of a cluster;
shardsvr = true
#设置最大连接数
maxConns=20000
[root@yhcs_1 ~]# vi /usr/local/mongodb/conf/shard2.conf
#配置文件内容
pidfilepath = /usr/local/mongodb/shard2/log/shard2.pid
dbpath = /usr/local/mongodb/shard2/data
logpath = /usr/local/mongodb/shard2/log/shard2.log
logappend = true
bind_ip = 0.0.0.0
port = 25002
fork = true
#副本集名称
replSet=shard2
#declare this is a shard db of a cluster;
shardsvr = true
#设置最大连接数
maxConns=20000
[root@yhcs_1 ~]# vi /usr/local/mongodb/conf/shard3.conf
#配置文件内容
pidfilepath = /usr/local/mongodb/shard3/log/shard3.pid
dbpath = /usr/local/mongodb/shard3/data
logpath = /usr/local/mongodb/shard3/log/shard3.log
logappend = true
bind_ip = 0.0.0.0
port = 25003
fork = true
#副本集名称
replSet=shard3
#declare this is a shard db of a cluster;
shardsvr = true
#设置最大连接数
maxConns=20000
[root@yhcs_1 ~]# vi /usr/local/mongodb/conf/mongos.conf
#配置文件内容
pidfilepath = /usr/local/mongodb/mongos/log/mongos.pid
logpath = /usr/local/mongodb/mongos/log/mongos.log
logappend = true
bind_ip = 0.0.0.0
port = 23000
fork = true
#监听的配置服务器,只能有1个或者3个,configs为配置服务器的副本集名字
configdb = configs/192.168.43.211:24000,192.168.43.212:24000,192.168.43.213:24000
#设置最大连接数
maxConns=20000
添加Hosts机器名
[root@yhcs_1 ~]# vi /etc/hosts
192.168.43.211 mongodb1
192.168.43.212 mongodb2
192.168.43.213 mongodb3
设置环境变量
[root@yhcs_1 ~]# vi /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
[root@yhcs_1 ~]# source /etc/profile
初始化配置副本集
#在系统上安装mongodb之后报错。
#错误信息:
WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always’.We suggest setting it to ‘never’
WARNING: /sys/kernel/mm/transparent_hugepage/defrag is ‘always’.We suggest setting it to ‘never’
#解决方案:
[root@yhcs_1 ~]#sudo echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
[root@yhcs_1 ~]#sudo echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
[root@yhcs_1 ~]# mongod -f /usr/local/mongodb/conf/config.conf
[root@yhcs_1 ~]# mongo --port 24000
use admin
config = {
_id : "configs",
members : [
{_id : 0, host : "192.168.43.211:24000" },
{_id : 1, host : "192.168.43.212:24000" },
{_id : 2, host : "192.168.43.213:24000" }
]
}
rs.initiate(config);
#查看集群状态
rs.status()
配置分片
#注意:机器上分别启动相关进程,仲裁节点不能是自己,并且仲裁节点需要和数据节点是一个shard
#在shard1 192.168.43.211上
#初始化replica set
#用mongo连接shard1的mongod,
#/usr/local/mongodb/bin/mongo --port 25001
#执行: #id要和启动时--replSet shard1的shard1匹配
[root@yhcs_1 ~]# mongod -f /usr/local/mongodb/conf/shard1.conf
[root@yhcs_1 ~]# mongo --port 25001
use admin
config = {
_id : "shard1",
members : [
{_id : 0, host : "192.168.43.211:25001" },
{_id : 1, host : "192.168.43.212:25001" },
{_id : 2, host : "192.168.43.213:25001" , arbiterOnly: true }
]
}
rs.initiate(config);
#在shard2 192.168.43.212上
#用mongo连接shard2的mongod,
#/usr/local/mongodb/bin/mongo --port 25002
[root@yhcs_2 ~]# mongod -f /usr/local/mongodb/conf/shard1.conf
[root@yhcs_2 ~]# mongo --port 25002
use admin
config = {
_id : "shard2",
members : [
{_id : 0, host : "192.168.43.211:25002" , arbiterOnly: true },
{_id : 1, host : "192.168.43.212:25002" },
{_id : 2, host : "192.168.43.213:25002" }
]
}
rs.initiate(config);
#在shard3 192.168.43.213上
#用mongo连接shard3的mongod,
#/usr/local/mongodb/bin/mongo --port 25003
[root@yhcs_3 ~]# mongod -f /usr/local/mongodb/conf/shard3.conf
[root@yhcs_3 ~]# mongo --port 25003
use admin
config = {
_id : "shard3",
members : [
{_id : 0, host : "192.168.43.211:25003" },
{_id : 1, host : "192.168.43.212:25003" , arbiterOnly: true},
{_id : 2, host : "192.168.43.213:25003" }
]
}
rs.initiate(config);
配置路由
#登陆任意一台mongos
[root@yhcs_1 ~]# mongos -f /usr/local/mongodb/conf/mongos.conf
[root@yhcs_1 ~]# mongo --port 23000
use admin
sh.addShard("shard1/192.168.43.211:25001,192.168.43.212:25001,192.168.43.213:25001")
sh.addShard("shard2/192.168.43.211:25002,192.168.43.212:25002,192.168.43.213:25002")
sh.addShard("shard3/192.168.43.211:25003,192.168.43.212:25003,192.168.43.213:25003")
#查看集群状态
sh.status()
分片测试
#默认情况下,MongoDB不会自动对数据进行拆分,如果需要对某个数据库、集合进行拆分,则需要通过命令通知到mongos
RANGE分片
#拆分数据库 指定yhcsdb分片生效
mongos> db.enableSharding("yhcsdb")
2021-01-27T18:45:16.109+0800 E QUERY [thread1] TypeError: db.enableSharding is not a function :
@(shell):1:1
#没以上方法,则使用以下命令
mongos> db.runCommand({enablesharding:"yhcsdb"});
{
"ok" : 0,
"errmsg" : "enableSharding may only be run against the admin database.",
"code" : 13
}
#则表明需要切换到admin才可以执行enableSharding命令
mongos> use admin;
switched to db admin
mongos> db.runCommand({enablesharding:"yhcsdb"}); #yhcsdb这个库启用分片
{
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1611744429, 5),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1611744429, 5)
}
#指定数据库里需要分片的集合和片键
use admin
MongoDB Enterprise mongos> db.runCommand( { shardcollection : "yhcsdb.table1",key : {id: 1} } )
{
"ok" : 0,
"errmsg" : "Please create an index that starts with the proposed shard key before sharding the collection",
"code" : 72,
"codeName" : "InvalidOptions",
"$clusterTime" : {
"clusterTime" : Timestamp(1611745227, 6),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1611745227, 6)
}
#当无可用的索引,并且表不为空时,就会出现以上这个错误信息。
#需要在分片key上个建立索引
use yhcsdb
db.table1.ensureIndex({id:1})
use admin
MongoDB Enterprise mongos> db.runCommand( { shardcollection : "yhcsdb.table1",key : {id: 1} } )
{
"collectionsharded" : "yhcsdb.table1",
"collectionUUID" : UUID("69bc21e9-3af6-45cd-a5d3-e7d249e7b2ba"),
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1611746350, 12),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1611746350, 12)
}
#加入10W条数据到table1集合中
use yhcsdb
for(var i=0;i<100000;i++){ db.table1.insert({ "id":i,"name":"yhcs"+i }) }
#观察分片情况
use yhcsdb
db.table1.stats()
#发现该方式所有数据库内容都是一样的,未形成分片存储,但是collection分片又是已经操作成功了,这是为什么?
#原因:默认chunk size为64MB,也就是数据量需要超过64MB才会触发chunk分裂。
#修改chunk size (修改后,再次操作录入10W条数据,测试分片存储是否成功)
use config
db.settings.save( { _id:"chunksize", value: <sizeInMB> } )
#默认是64MB,取值范围是1 MB 到 1024 MB.
#那修改会造成什么?下表简单总结:
chunk size 调节 |
splitting次数(碎片数) |
数据跨shard数目 |
数据均匀 |
网络传输次数 |
migration次数 |
单次migration 传输量 |
查询速度 |
变大 |
减少 |
变少 |
不太均匀 |
变少 |
变少 |
变大 |
变快 |
变小 |
增多 |
变多 |
更均匀 |
变多 |
变多 |
变小 |
变慢 |
#在数据量很大的情况下,考虑网络带宽,如果发现带宽占满,可以考虑调小chunk size,这样migration造成的传输量会降低。
#在服务器硬件很好的情况下,可以考虑调大chunk size,减少不必要的分片。
Hash分片
#对于eden开启分片功能
mongo --port 23000
use admin
db.runCommand( { enablesharding : "eden" } )
#对于eden库下的table表建立hash索引
use eden
db.table.ensureIndex( { id: "hashed" } )
#开启分片
use admin
sh.shardCollection( "eden.table", { id: "hashed" } )
#录入10w行数据测试
use eden for(i=1;i<100000;i++){ db.table.insert({"id":i,"book":"sanguo"+i,"money":32+i }); }
#查询数据
MongoDB Enterprise mongos> use eden
switched to db eden
MongoDB Enterprise mongos> db.table.stats()
{
"sharded" : true,
"capped" : false,
"ns" : "eden.table",
"count" : 67338,
"size" : 4309632,
"storageSize" : 1392640,
"totalIndexSize" : 2924544,
"indexSizes" : {
"_id_" : 753664,
"id_hashed" : 2170880
},
"avgObjSize" : 64,
"nindexes" : 2,
"nchunks" : 6,
"shards" : {
"shard1" : {
"ns" : "eden.edentab",
"size" : 1454464,
"count" : 22726,
"avgObjSize" : 64,
"storageSize" : 471040,
"capped" : false,
"shard2" : {
"ns" : "eden.edentab",
"size" : 1431104,
"count" : 22361,
"avgObjSize" : 64,
"storageSize" : 462848,
"capped" : false,
"shard3" : {
"ns" : "eden.edentab",
"size" : 1424064,
"count" : 22251,
"avgObjSize" : 64,
"storageSize" : 458752,
"capped" : false,
增加安全认证机制
keyFile认证
[root@yhcs_1 ~]# cd /usr/local/mongodb/
[root@yhcs_1 mongodb]# mkdir key
#生成key
[root@yhcs_1 mongodb]# openssl rand -base64 745 > /usr/local/mongodb/key/mongodb-keyfile
#该key的权限必须是600
[root@yhcs_1 key]# chmod 600 /usr/local/mongodb/key/mongodb-keyfile
[root@yhcs_1 key]# ll
-rw------- 1 root root 1012 Feb 24 11:32 mongodb-keyfile
# 修改配置
#给所有的/usr/local/mongodb/conf/下的config.conf、shard1.conf、shard2.conf、shard3.conf启动配置文件中增加以下两行配置;
#注意:mongos.conf仅配置密钥
#开启权限
auth = true
#密钥文件路径
keyFile = /usr/local/mongodb/key/mongodb-keyfile
auth认证
#开启keyfile认证就默认开启了auth认证了(即使不设置auth = true),为了保证后面可以登录,需提前创建用户
#先创建管理员账户
#连接任何一个mongos,为其创建用户:
mongo --port 23000
use admin #注意,一定要使用admin库去创建用户
db.createUser(
{
user:"admin",
pwd:"password",
roles:[{role:"userAdminAnyDatabase",db:"admin"}]
}
);
db.createUser( {
user: "root",
pwd: "rootpassword",
roles: [ { role: "root", db: "admin" } ]
});
#认证用户
db.auth("admin","password")
db.auth("root","rootpassword")
#至此,配置完毕。重启集群使安全认证配置生效。
用户验证
重启集群后有两种方式进行用户身份的验证
第一种 (类似 MySql)
客户端连接时,指定用户名,密码,db名称
mongo --port 23000 -u "admin" -p "password" --authenticationDatabase "admin"
第二种
客户端连接后,再进行验证
mongo --port 23000
use admin
db.auth("admin","password")
#输出 1 表示验证成功
MongoDB集群命令
MongoDB集群启动
[root@yhcs_1 ~]# mongod -f /usr/local/mongodb/conf/config.conf
[root@yhcs_1 ~]# mongod -f /usr/local/mongodb/conf/shard1.conf
[root@yhcs_1 ~]# mongod -f /usr/local/mongodb/conf/shard2.conf
[root@yhcs_1 ~]# mongod -f /usr/local/mongodb/conf/shard3.conf
[root@yhcs_1 ~]# mongos -f /usr/local/mongodb/conf/mongos.conf
MongoDB集群关闭
方法一:
[root@yhcs_1 ~]# kill -15 进程
方法二:(按顺序执行,以免出现异常关闭)
[root@yhcs_1 ~]# mongod -f /usr/local/mongodb/conf/config.conf --shutdown
[root@yhcs_1 ~]# mongod -f /usr/local/mongodb/conf/shard1.conf --shutdown
[root@yhcs_1 ~]# mongod -f /usr/local/mongodb/conf/shard2.conf --shutdown
[root@yhcs_1 ~]# mongod -f /usr/local/mongodb/conf/shard3.conf --shutdown
[root@yhcs_1 ~]# #mongos.conf关闭方式
[root@yhcs_1 ~]# mongo -port 23000
use admin
db.auth("admin","password")
db.shutdownServer() #前提是用户有操作这个命令(shutdown)的权限
#hostManger的这个角色具有shutdown的权限。然后将这个角色赋予admin后 就可以继续使用了
db.grantRolesToUser( "admin" , [ { role: "hostManager", db: "admin" } ])
#语法:
db.grantRolesToUser( "用户名" , [ { role: "hostManager", db: "admin" } ])
#hostManager:提供了监控和管理服务器的权限,包括shutdown节点,logrotate, repairDatabase等。
#正确关闭mongoDB
官方文档说明要使用 kill -15,killall mongod或者在client的shell里,use admin,执行db.shutdownServer()即可。
不建议使用kill -9
数据库用户角色(拷贝过来的)
role角色类型
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
内部角色:__system
角色说明
read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
dbOwner: readWrite + dbAdmin + dbAdmin
Java客户端连接配置(拷贝过来的)
#该项未进行测试
#Spring XML配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- credentials="用户名:密码@用户归属数据库" -->
<mongo:mongo-client replica-set="192.168.43.211:24000,192.168.43.212:24000,192.168.43.213:24000" credentials="admin:password@admin" id="mongo">
<mongo:client-options
connections-per-host="20"
threads-allowed-to-block-for-connection-multiplier="10"
connect-timeout="120000"
max-wait-time="120000"
socket-keep-alive="true"
socket-timeout="150000"
/>
</mongo:mongo-client>
<mongo:db-factory dbname="数据库名" mongo-ref="mongo" />
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean></beans>
#Spring Boot配置
spring.data.mongodb.uri=mongodb://user:pwd@ip1:port1,ip2:port2/database
参考文档(致谢!)
集群部署参考文档
MongoDB集群配置:
MongoDB集群配置 - KoreQAQ - 博客园
MongoDB高可用集群搭建(主从、分片、路由、安全验证):
MongoDB高可用集群搭建(主从、分片、路由、安全验证)_韦晓阳的博客-CSDN博客_mongodb路由
MongoDB分片实战:
MongoDB分片实战(一):集群搭建 - zhanjindong - 博客园
MongoDB分片集群(sharded cluster)搭建过程:
MongoDB分片集群(sharded cluster)搭建过程_duanbeibei的博客-CSDN博客_mongodb分片集群
MongoDB集群搭建及使用:
MongoDB集群搭建及使用_supermapsupport的博客-CSDN博客_mongodb集群搭建
MongoDB集群搭建(分片+副本):
mongodb集群搭建(分片+副本) - 斩乱凡尘 - 博客园
MongoDB集群分片+副本配置:
https://blog.csdn.net/yangqinhz/article/details/79272837
MongoDB分片:
MongoDB(六)分片_jjavaboy的博客-CSDN博客
Mongodb分片问题之-please create an index that starts with the shard key before sharding:
Mongodb分片问题之-please create an index that starts with the shard key before sharding - 布雷泽 - 博客园
MongoDB启用分片操作简单说明:
http://blog.sina.com.cn/s/blog_4da051a60102wucz.html
MongoDB索引管理-索引的创建、查看、删除:
MongoDB索引管理-索引的创建、查看、删除 - IT笔录
【Mongodb】 对 shard 进行大量数据拆分测试:
【Mongodb】 对 shard 进行大量数据拆分测试-阿里云开发者社区
keyFile认证参考文档
mongodb分片集群 搭建 + keyFile认证:
https://my.oschina.net/u/4325464/blog/4259219
Mongodb集群keyFile认证:
Mongodb 集群keyFile认证__lynnwu的博客-CSDN博客_keyfile mongo
生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限):
生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)_慕课手记
mongodb.副本集配置方法(使用keyfile认证部署):
mongodb.副本集配置方法(使用keyfile认证部署) - 幻河 - 博客园
MongoDB使用keyfile访问控制的方式部署副本集:
MongoDB:使用keyfile访问控制的方式部署副本集_黑土墨的博客-CSDN博客_keyfile mongo
MongoDB开启身份认证_MongoDB高可用集群搭建示例:
https://blog.csdn.net/weixin_31750655/article/details/112511217?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-3&spm=1001.2101.3001.4242
MongoDB 用户名密码登录:
https://www.jianshu.com/p/79caa1cc49a5
报错参考文档
mongodb启动不了:child process failed, exited with error number 100:
mongodb启动不了:child process failed, exited with error number 100_sinat_30397435的博客-CSDN博客
ERROR: child process failed, exited with error number 51:
ERROR: child process failed, exited with error number 51_weixin_30772261的博客-CSDN博客
mongodb启动不了:child process failed, exited with error number 48:
https://www.cnblogs.com/joshua317/articles/5190385.html
心不死,土不埋,学无止境
MongoDB分片+副本+keyFile认证(新手部署完整版)相关推荐
- MongoDb分片集群认证
本文主要基于已经搭建好的未认证集群,结合上篇Mongodb副本集分片集群模式环境部署(https://www.cnblogs.com/woxingwoxue/p/9875878.html), Mong ...
- Mongodb 集群加keyFile认证,Mongodb用户管理(转:http://blog.csdn.net/wlzjsj/article/details/61421230)
介绍 自从远古计绳结开始,数据库的存储就注定了今天的地位和多样性,Nosql的出现更是解决了现有的关系型数据库无法解决的一些难题,对高性能,灵活度,扩展性,海量数据的问题.随之而出现的高速内存索引数据 ...
- Mongodb 集群加keyFile认证
介绍 自从远古计绳结开始,数据库的存储就注定了今天的地位和多样性,Nosql的出现更是解决了现有的关系型数据库无法解决的一些难题,对高性能,灵活度,扩展性,海量数据的问题.随之而出现的高速内存索引数据 ...
- MongoDB分片副本集搭建
1.安装mongodb tar xvf mongodb-linux-x86_64-enterprise-rhel70-3.6.2.tgz -C /usr/local/ cd /usr/local mv ...
- 2022年青龙面板部署完整版教程(多图)
前言 0.0 安装对象推荐 centos7.6 0.1 服务器租用推荐腾讯云.阿里云 传送门: 腾讯云 阿里云 教程开始 1.1 系统选择: centos7.6 下面以腾讯云服务器为例,先选地区.然后 ...
- mongodb分片+副本集集群环境搭建
1.准备工作 准备机器 端口 28000 27017 27018 27019 27020 192.168.0.1 config route shardmaster shardreplset shard ...
- 蓝鲸智云App应用部署(完整版)
App应用发布部署,其中包含了docker部署gitea,mysql,redis组件 2.1新建应用,填写应用信息,如下图所示 2.2填写git仓库 2.3修改app应用代码中配置 修改 config ...
- 双因素认证令牌_(完整版)双因素认证解决方案
双因素认证方案 一. 网络安全认证的需求背景 网络钓鱼.欺诈等网络犯罪现象已经达到非常严峻的情况,用户如果只依赖个人密码进行 帐户登录或网上交易, 是非常危险和不可靠的认证方法. 针对这些问题, 北京 ...
- 蓝鲸智云5.1版本安装部署(完整版)
环境要求: 1.蓝鲸部署机器:centos 7 2.App 应用部署机器:centos 7 一:蓝鲸安装部署 1.1环境准备 1.2使用 epel 源 yum install epel-release ...
最新文章
- 首款AI+智能工程头盔发布,小松(中国)与天远科技ICT战略签约成功举行
- Attack on Alpha-Zet
- 菜菜从零学习WCF十(序列化)
- 拒绝亡羊补牢!SQL Server服务器安全防护!
- c++新特性11 (12)weak_ptr类定义
- SAP Analytics Cloud和SAP Cloud for Customer的集成
- python传中文参数_解决Python传递中文参数的问题
- tf.contrib在tf2中无法使用
- nginx 后端获取真实ip
- 实用———springmvc接收参数校验
- docker-rabbitmq
- Android Studio插件GsonFormat详解
- 【正点原子STM32连载】第七章 认识HAL库 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
- IEEE Fellow 2020名单揭晓!BDTC 2019重磅嘉宾周伯文、叶杰平、陈宝权上榜
- 高德地图api中的adcode城市编码
- 离散ziggurat算法python实现_SLAM的数学基础(3):几种常见的概率分布的实现及验证。...
- 淘宝模拟登录2解决滑动验证问题
- 论微服务架构及其应用
- CAD画图教程,手把手教你画“鱼”
- 5月6日地图下载。同学们要练习!
热门文章
- 坚持#第394天~佳能打印机IP7280开不了机的十多天的折腾终于有希望了
- 云客Drupal源码分析之前言
- 纽约与加州_纽约市.NET用户组与感冒
- MDF 海事船台显控
- 三相逆变器双pi控制器参数如何调节_单相逆变电源的电压双闭环矢量控制新方法,解决传统方案的不足...
- 铁氧体磁珠相关知识总结
- oracle讲座心得1000字,教育讲座心得体会(精选8篇)
- 香港理工大学酒店管理html,香港理工大学的酒店管理硕士申请要求有哪些?
- plsql developer建立数据库
- 广西计算机应用设计大赛,关于举办2019年桂林理工大学网页设计大赛暨第十三届广西大学生计算机应用大赛选拔赛的通知...