10000 mongodb Replica Set · mgicode/mgicode-k8s-shell@b68d54d · GitHub
[go: up one dir, main page]

Skip to content

Commit b68d54d

Browse files
committed
mongodb Replica Set
1 parent 53d5103 commit b68d54d

File tree

10 files changed

+306
-2
lines changed

10 files changed

+306
-2
lines changed

.idea/workspace.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

04k8s(10.1.12.20-29)/01k8sadmin/01.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ yum install traceroute -y
3232
yum install mtr -y
3333

3434

35+
3536
hostnamectl set-hostname k8sadmin
3637
systemctl restart systemd-hostnamed
3738
systemctl stop firewalld.service
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#搭建三台物理 ReplicaSet MongoDB
2+
3+
NODE_IPS="10.1.12.70 10.1.12.71 10.1.12.72"
4+
NODE_NAME="mongodb01 mongodb02 mongodb03"
5+
6+
####################1、初始化etcd机器,免证登录,改名,改ip并重启####################
7+
8+
chmod 777 /common/ssh.sh
9+
/common/ssh.sh "$NODE_IPS" "$NODE_NAME"
10+
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
# must create dir :/var/lib/mongodb
3+
#must put mongod into /usr/local/bin/
4+
#must create conf file in /var/lib/mongodb/mongodb.conf
5+
6+
#######################################################
7+
#
8+
mkdir -p /mongodbRelicaSet3/
9+
cd /mongodbRelicaSet3/
10+
cat > /mongodbRelicaSet3/mongodb.service <<EOF
11+
[Unit]
12+
Description=mongodb
13+
After=network.target remote-fs.target nss-lookup.target
14+
15+
[Service]
16+
Type=forking
17+
WorkingDirectory=/var/lib/mongodb
18+
ExecStart=/usr/local/bin/mongod \\
19+
--config=/var/lib/mongodb/mongodb.conf
20+
ExecReload=/bin/kill -s HUP $MAINPID
21+
ExecStop=/var/lib/mongodb --shutdown \\
22+
--config=/var/lib/mongodb/mongodb.conf
23+
PrivateTmp=true
24+
Restart=on-failure
25+
RestartSec=5
26+
27+
[Install]
28+
WantedBy=multi-user.target
29+
EOF
30+
31+
echo -e "\033[32m ############### mongodb.service ########### \033[0m"
32+
cat /mongodbRelicaSet3/mongodb.service
33+
echo -e "\033[32m ###########内容显示完成########### \033[0m"
34+
35+
sleep 5
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# author:pengrk
2+
# email:546711211@qq.com
3+
# qq group:573283836
4+
5+
# wget wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.4.tgz
6+
7+
#3.3 创建安装的shell
8+
cat > /mongodbRelicaSet3/install-client.sh <<EOF
9+
10+
echo " export PATH=/usr/local/bin:\$PATH " >> /etc/profile
11+
source /etc/profile
12+
13+
mkdir -p /mongodbRecilaSetWorking/
14+
cd /mongodbRecilaSetWorking/
15+
16+
wget http://${FILE_SERVER_IP}/mongodb-linux-x86_64-rhel70-3.4.4.tgz -q
17+
tar -zxvf mongodb-linux-x86_64-rhel70-3.4.4.tgz
18+
rm mongodb-linux-x86_64-rhel70-3.4.4.tgz
19+
cp -r /mongodbRecilaSetWorking/mongodb-linux-x86_64-rhel70-3.4.4/bin/* /usr/local/bin/
20+
chmod 777 /usr/local/bin/*
21+
22+
echo -e "\033[32m ###############至少包括mongo、mongod文件########### \033[0m"
23+
ls /usr/local/bin/
24+
echo -e "\033[32m ###########内容显示完成########### \033[0m"
25+
26+
mkdir -p /var/lib/mongodb/
27+
28+
systemctl daemon-reload
29+
systemctl enable mongodb
30+
systemctl start mongodb
31+
systemctl status mongodb
32+
33+
sleep 3
34+
35+
EOF
36+
37+
echo -e "\033[32m ############### /mongodbRelicaSet3/install-client.sh ########### \033[0m"
38+
cat /mongodbRelicaSet3/install-client.sh
39+
echo -e "\033[32m ###########内容显示完成########### \033[0m"
40+ F438
41+
sleep 2;
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# author:pengrk
2+
# email:546711211@qq.com
3+
# qq group:573283836
4+
5+
6+
NODE_IPS="10.1.12.70 10.1.12.71 10.1.12.72"
7+
NODE_NAME="mongodb01 mongodb02 mongodb03"
8+
9+
# dbpath:数据库文件路径
10+
# logpath:日志文件路径
11+
# logappend:是否追加日志
12+
# port:端口
13+
# fork:是否以后台进程启动
14+
# auth:是否启动授权认证
15+
# nohttpinterface:是否支持HTTP形式访问
16+
17+
# copy to /var/lib/mongodb/mongodb.conf
18+
19+
#3.2生成三个配置文件
20+
for ip in $NODE_IPS ;do
21+
cat > /mongodbRelicaSet3/mongdbconf${ip##*.} <<EOF
22+
dbpath=/var/lib/mongodb/data/db/
23+
logpath=/var/lib/mongodb/data/log/mongodb.log
24+
logappend=true
25+
port=27017
26+
fork=true
27+
#nohttpinterface=true
28+
#auth=true
29+
#副本集名称,同一个副本集,名称必须一致
30+
replSet=mongodbRS
31+
32+
EOF
33+
34+
echo -e "\033[32m ###############/mongodbRelicaSet3/mongdbconf${ip##*.} ########### \033[0m"
35+
cat /mongodbRelicaSet3/mongdbconf${ip##*.}
36+
echo -e "\033[32m ###########内容显示完成########### \033[0m"
37+
38+
sleep 5
39+
done;
40+
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# author:pengrk
2+
# email:546711211@qq.com
3+
# qq group:573283836
4+
5+
NODE_IPS="10.1.12.70 10.1.12.71 10.1.12.72"
6+
NODE_NAME="mongodb01 mongodb02 mongodb03"
7+
8+
clearScript="
9+
systemctl stop mongodb;
10+
systemctl disable mongodb;
11+
12+
rm -rf /mongodbRecilaSetWorking/;
13+
rm -rf /usr/local/bin/mongo*;
14+
rm -rf /usr/local/bin/bsondump;
15+
16+
rm -rf /var/lib/mongodb/install-client.sh;
17+
rm -rf /etc/systemd/system/mongodb.service;
18+
rm -rf /var/lib/mongodb/
19+
"
20+
21+
checkScript="
22+
echo -e \"\033[32m ############### /var/lib/mongodb/至少包括install-client.sh ########### \033[0m\"
23+
ls /var/lib/mongodb/install-client.sh
24+
echo -e \"\033[32m ###############内容显示完成########### \033[0m\"
25+
26+
echo -e \"\033[32m ############### /etc/systemd/system/至少包括mongodb.service ########### \033[0m\"
27+
ls /etc/systemd/system/mongodb.service
28+
echo -e \"\033[32m ###############内容显示完成########### \033[0m\"
29+
30+
echo -e \"\033[32m ############### /var/lib/mongodb/至少包括mongodb.conf ########### \033[0m\"
31+
ls /var/lib/mongodb/mongodb.conf
32+
cat /var/lib/mongodb/mongodb.conf
33+
echo -e \"\033[32m ###############内容显示完成########### \033[0m\"
34+
"
35+
36+
37+
#清除mongodb安装的所有内容
38+
# for ip in $NODE_IPS ;do
39+
# echo "清除$ip中的mongodb安装的所有内容..."
40+
# ssh root@$ip "$clearScript"
41+
# done
42+
43+
#3.3 安装mongodb
44+
for ip in $NODE_IPS ;do
45+
echo "清除$ip中的mongodb安装的所有内容..."
46+
ssh root@$ip "$clearScript"
47+
48+
echo "安装$ip的mongodb..."
49+
ssh root@$ip "mkdir -p /mongodbRecilaSetWorking/; mkdir -p /var/lib/mongodb/data/db/;mkdir -p /var/lib/mongodb/data/log/"
50+
51+
scp /mongodbRelicaSet3/mongdbconf${ip##*.} root@$ip:/var/lib/mongodb/mongodb.conf
52+
scp /mongodbRelicaSet3/mongodb.service root@$ip:/etc/systemd/system/mongodb.service
53+
scp /mongodbRelicaSet3/install-client.sh root@$ip:/var/lib/mongodb/install-client.sh
54+
ssh root@$ip "chmod 777 /var/lib/mongodb/install-client.sh; /var/lib/mongodb/install-client.sh;"
55+
56+
ssh root@$ip "$checkScript"
57+
sleep 5
58+
59+
done
60+
61+
62+
63+
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
2+
NODE_IPS="10.1.12.70 10.1.12.71 10.1.12.72"
3+
NODE_NAME="mongodb01 mongodb02 mongodb03"
4+
5+
#安装集群
6+
7+
#--eval -eval都可以
8+
#rs.initiate({"_id" : "mongodbRS${ip##*.}", "members" : [{_id: ${i1}, host: "127.0.0.1:17017"}, {_id: 1, host: "xxxhost: 20002"}]})
9+
RS_CODES="mongo 127.0.0.1:27017/admin --eval \"rs.initiate({'_id' : 'mongodbRS', 'members' : ["
10+
i=0
11+
for ip in $NODE_IPS ;do
12+
if [ $i -eq 0 ]; then
13+
RS_CODES="${RS_CODES}{_id: ${i}, host: '${ip}:27017'}"
14+
else
15+
RS_CODES="$RS_CODES,{_id: ${i}, host: '${ip}:27017'}"
16+
fi
17+
let i++
18+
done
19+
20+
RS_CODES="${RS_CODES}]}) \""
21+
22+
echo -e "\033[32m ###############建立集群的脚本########### \033[0m"
23+
echo "建立集群的脚本:${RS_CODES}"
24+
echo -e "\033[32m ###############内容显示完成########### \033[0m"
25+
26+
sleep 5
27+
28+
29+
i=0
30+
for ip in $NODE_IPS ;do
31+
echo "建立集群$ip..."
32+
if [ $i -eq 0 ]; then
33+
ssh root@$ip "$RS_CODES"
34+
fi
35+
done
36+
sleep 10
37+
38+
#查看集群状态
39+
i=0
40+
for ip in $NODE_IPS ;do
41+
echo "集群status$ip..."
42+
ssh root@$ip "mongo 127.0.0.1:27017/admin -eval \" rs.status()\" "
43+
sleep 10
44+
done
45+
46+
47+
48+
49+
#mongo 127.0.0.1:17017/test –eval \"rs.status()\"
50+
#mongo 10.1.12.29:27017/test -eval "rs.status()"
51+
#todo mongoAdmin
52+
#mongo 127.0.0.1:3003/test –eval “db.test.find().forEach(printjson);”
53+
54+
#todo: 为mongodb创建用户名和密码
55+
56+
#http://tcrct.iteye.com/blog/2108099
57+
58+
#mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

design.txt

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
主要技术点:
2+
3+
采用GRPC作为通信协议来实现微服务内部及移动端之间的通信
4+
在此基础上采用consul或k8s进行服务注册发现(spring boot不好用,自己实现)
5+
实现grpc的负载均衡(采用GRPC自己的机制)
6+
实现调用链的监控(采用全局的拦截和Meta传递参数实现)
7+
http、grpc互通的调用链,
8+
调用键和日志关联
9+
能否简化GRPC的操作(每个Request 都需要定义,能否采用map<string,string)的方式来实现?返回默认采用json)
10+
android的或js的负载均衡的实现
11+
grpc 网关的监控,流量控制,熔断、降级等
12+
提供protobuf的网关的实现(采用jd的网关实现)
13+
14+
服务循环调用的检测
15+
服务版本等过滤服务处理,有一些服务可能请求老的服务版本,服务版本、类别,组等写consul的 label中
16+
17+
提供http的掊口,采用spring mvc(现在有方案)
18+
提供webflux的http2、websocket的实现(http网关,提高吞吐量)
19+
swagger ui的接口的实现
20+
restful接口的数据格式定义页面和自动生成测试的数据进行自动化接口的测试
21+
数据格式的验证(新的微服务中实现,在接口方法运行前拦截)
22+
生成vuejs的测试数据及其数据格式
23+
24+
服务的本地调用和服务远程调用统一,方便单元测试
25+
每个服务调用的次数、ip等图形化统计
26+
结合spring admin监控微服务的配置、cpu、内存使用的相关数据
27+
分布式作业管理
28+
29+
vuejs微服务组件化(两种方式)
30+
31+
字典微服务
32+
编码微服务
33+
用户权限微服务
34+
调用链微服务
35+
监控微服务
36+
文件上传、图片处理微服务
37+
38+
设计服务
39+
微服务小组的计划及日志微服务
40+
bug管理微服务
41+
发布微服务
42+
运营微服务
43+
mongode的监控
44+
redis的监控
45+
mq的处理
46+
代码生成
47+
48+
打包成桌面应用
49+
50+
k8s的可伸缩管理(包括nodejs的环境搭建)
51+
服务网络
52+
53+
react native 的处理
54+
55+
微服务的版本管理

docs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 75de945435772f198b0637974cd420b80e0cc1a6

0 commit comments

Comments
 (0)
0