1. 官方安裝文檔推薦
https://docs.mongodb.com/manual/tutorial/install-mongodb-enterprise-on-red-hat/
2. 使用 .rpm 包安裝
(1). 配置存儲庫
創建一個/etc/yum.repos.d/mongodb-enterprise.repo
文件,以便您可以使用yum
以下命令直接安裝MongoDB企業
[mongodb-enterprise]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/4.0/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
(2). 安裝MongoDB Enterprise軟件包
當前目錄下發出命令:
sudo yum install -y mongodb-enterprise
3. 虛擬機配置
(1). 部署三臺虛擬機,三個Mongo節點都按照以下方式創建
配置每個虛擬機的IP和端口號 |
10.10.11.41:20001 |
10.10.11.42:20002 |
10.10.11.43:20003 |
(2). 文件存儲地址創建
[1]. MongoDB數據存儲地址:/data/mongo-conf/data1/data
[2]. MongoDB日誌存儲地址:/data/mongo-conf/data1/log/mongod.log
[3]. MongoDB啓動Config文件: /data/mongo-conf/data1/config.conf
systemLog:
destination: file
path: /data/mongo-conf/data1/log/mongod.log
logAppend: true
storage:
journal:
enabled: true
dbPath: /data/mongo-conf/data1/data
directoryPerDB: true
wiredTiger:
engineConfig:
directoryForIndexes: true
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
processManagement:
fork: false
pidFilePath: /data/mongo-conf/data1/data/mongod.pid
timeZoneInfo: /usr/share/zoneinfo
net:
port: 20001
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
replication:
oplogSizeMB: 8224 #oplog集合大小
replSetName: rep1 #集羣名稱
[4]. MongoDB啓動命令:
/usr/bin/mongod -f /data/mongo-conf/data1/config.conf &
[5]. 創建MongoDB啓動腳本: /data/mongo-conf/data1/start-mongodb.sh
/usr/bin/mongod -f /data/mongo-conf/data1/config.conf &
[6]. 設置權限:
chmod 777 start-mongodb.sh
[7]. 初始化可複製集命令
//複製集初始化,在主節點上執行,ip禁止使用localhost
rs.initiate({
_id: "configRS",
version: 1,
members: [{ _id: 0, host : "10.10.11.41:20001" }]});
rs.add("10.10.11.42:20002");//有幾個節點就執行幾次方法
rs.add("10.10.11.43:20003");//有幾個節點就執行幾次方法
[8]. 測試可複製集
在每個節點運行 rs.status() 或 isMaster()命令查看複製集狀態
3. 使用正確的姿勢連接複製集
MongoDB複製集裏Primary節點是不固定的,不固定的,不固定的! 所以生產環境千萬不要直連Primary,千萬不要直連Primary,千萬不要直連Primary!
重要的事情說3遍!
(1). JAVA原生驅動開發
List<ServerAddress> asList = Arrays.asList(
new ServerAddress("10.10.11.41", 20001),
new ServerAddress("10.10.11.42", 20002),
new ServerAddress("10.10.11.43", 20003));
client = new MongoClient(asList);
(2). Spring配置開發
<mongo:mongo-client
replica-set="10.10.11.41:20001,10.10.11.42:20002,10.10.11.43:20003">
</mongo:mongo-client>
(3). 配置Tips
配置Tips:
關注Write Concern參數的設置,默認值1可以滿足大多數場景的需求。W值大於1可以提高數據的可靠持久化,但會降低寫性能。
在options裏添加readPreference=secondaryPreferred即可實現讀寫分離,讀請求優先到Secondary節點,從而實現讀寫分離的功能