一、准备工作
1.节点规划
- 节点部署
Ip | 主机名 | 节点 |
192.168.119.147 | db1 | 数据库集群主节点 |
192.168.119.153 | db2 | 数据库集群从节点 |
192.168.119.154 | Mycat | Mycat中间件服务节点 |
192.168.119.165 | Zookeeper1,kafka | 集群节点 |
192.168.119.158 | Zookeeper2,kafka | 集群节点 |
192.168.119.159 | Zookeeper3,kafka | 集群节点 |
192.168.119.160 | redis | 消息队列服务节点 |
192.168.119.161 | Jar1 | Tomcat1节点 |
192.168.119.162 | Jar2 | Tomcat2节点 |
192.168.119.163 | Nginx | Nginx服务器 |
2.修改主机名
[root@localhost ~]# hostnamectl set-hostname db1
[root@localhost ~]# bash 所有主机都要修改
3.配置yum源
将提供的gpmall-repo包上传至/opt目录下,配置local.repo文件
[root@db1 ~]# cat /etc/yum.repos.d/local.repo
[db1]
name=db1
baseurl=file:///opt/gpmall-repo
gpgcheck=0
enabled=1
除了nginx,jar1,jar2节点,其他节点都要配置yum源
4.配置映射
db1、db2、mycat节点配置
[root@db1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.119.147 db1
192.168.119.153 db2
192.168.119.154 mycat
三台机器都这样配置
Zookeeper1、zookeeper2、zookeeper3节点配置
[root@zookeeper1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.119.165 zookeeper1
192.168.119.158 zookeeper2
192.168.119.159 zookeeper3
三台机器都这样配置
Jar1、jar2节点配置
[root@jar1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.119.147 mysql.mall
192.168.119.165 zookeeper.mall
192.168.119.158 zookeeper.mall
192.168.119.159 zookeeper.mall
192.168.119.157 kafka.mall
192.168.119.158 kafka.mall
192.168.119.159 kafka.mall
192.168.119.160 redis.mall
192.168.119.161 jar1
192.168.119.162 jar2
两台机器都这样配置
5.安装java环境
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
Mycat、zookeeper1、zookeeper2、zookeeper3、jar1、jar2机器上安装java环境
6.关闭防火墙
[root@db1 ~]# setenforce 0
[root@db1 ~]# systemctl stop firewalld
所有机器都要关闭防火墙
二、读写分离
1.配置数据库
在db1、db2安装mariadb
yum install -y mariadb mariadb-server
初始化数据库
mysql_secure_installation db1和db2都要初始化
编辑my.cnf配置文件,添加如下内容
[mysqld]
log_bin = mysql-bin #记录操作日志
binlog_ignore_db = mysql #不同步MySQL系统数据库
server_id = 147
2.配置主从
db1节点登录数据库,赋予权限
grant all privileges on *.* to root@'%' identified by "123456"; 授权任何客户端可以以root身份登录到数据库
grant replication slave on *.* to 'user'@'db2' identified by '123456'; 创建user用户并授权从节点同步主节点的权限
db2节点登录数据库,配置主从
change master to master_host='db1',master_user='user',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=702;
显示两个yes代表主从配置成功
3.读写分离
在mycat节点上解压提供的mycat压缩包到/usr/local目录下
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
赋予目录权限并配置变量
[root@mycat ~]# chown -R 777 /usr/local/mycat/ 授权
[root@mycat ~]# echo export MYCAT_HOME=/usr/local/mycat/ >> /etc/profile 配置变量
[root@mycat ~]# source /etc/profile 立刻生效
进入/usr/local/mycat/conf目录下修改schema.xml和server.xml文件
红色部分为定义的名,蓝色部分是真实库的名,黄色部分表示所有读请求随机地分发到wiriterHost对应的readhost执行,writerHost不负担读压力,紫色表示写入节点的 ip,灰色表示读取节点的ip
红色部分表示真实库的名,括起来的部分注释掉
进入/bin目录,启动mycat,并用netstat -ntpl查看8066端口和9066端口是否打开
安装Mariadb-client服务
yum install -y MariaDB-client
登录mysql查看是否连接成功
可以看到db1和 db2的数据都可以在mycat上查看到,至此,mycat中间件服务配置完成
三、zookeeper集群部署
1.解压
将提供的zookeeper压缩包解压,三台zookeeper机器依次解压
tar -zxvf zookeeper-3.4.14.tar.gz
2.修改配置文件
进入zookeeper-3.4.14/conf目录下,将zoo_sample.cfg修改为zoo.cfg
mv zoo_sample.cfg zoo.cfg 三台机器都要修改
修改zoo.cfg文件
29:server.1=192.168.119.175:2888:3888
30:server.2=192.168.119.176:2888:3888
31:server.3=192.168.119.177:2888:3888
三台机器都要修改
3.创建myid
在三台机器的dataDir创建myid文件,每台机器的id都不同,dataDir在zoo.cfg文件中有路径
[root@zookeeper1 ~]# mkdir /tmp/zookeeper
[root@zookeeper1 ~]# vim /tmp/zookeeper/myid
Zk1
zk2
zk3
4.启动
进入zookeeper-3.4.14/bin目录下启动zookeeper集群,启动之后查看状态,zk1和zk2都是follower,zk2被选举为leader,zookeeper集群部署完成
./zkServer.sh start
./zkServer.sh status
Zk1
zk2
zk3
四、kafka集群部署
1.解压
将提供的kafka压缩包上传至/root目录
tar -zxvf kafka_2.11-1.1.1.tgz 三台机器依次解压
2.修改配置文件
进入kafka_2.11-1.1.1/config目录下编辑server.properties文件
将broker.id=0注释掉,zookeeper.connect=localhost:2181注释掉
在最下方加入三个配置
broker.id=1
zookeeper.connect=192.168.119.175:2181,192.168.119.176:2181,192.168.119.177:2181
listeners = PLAINTEXT://192.168.119.175:9092
红色的作用跟myid文件一样,每台机器都不一样,蓝色表示将多个kafka集群注册到了一个zk集群中,黄色表示broker 服务器要监听的地址及端口
zk1
zk2
zk3
3.启动
进入kafka_2.11.-1.1.1/bin目录下,启动服务,是用jps查看服务是否启动
./kafka-server-start.sh -daemon ../config/server.properties
服务启动完成,测试连通性,在zk1上创建test,并在zk2和 zk3上查看
./kafka-topics.sh --create --zookeeper 192.168.119.175:2181 --replication-factor 1 --partitions 1 --topic test
zk1
Zk2
./kafka-topics.sh --list --zookeeper 192.168.119.176:2181
测试完成,部署成功
五、搭建集群应用系统环境
1.数据库配置
在db1上新建数据库,并将提供的gpmall.sql文件传到数据库上
create database gpmall;
use gpmall;
source /root/gpmall.sql
在mycat节点上查看是否同步过来
2.redis服务配置
在redis节点安装redis
Yum install -y redis
修改redis配置文件,在/etc/redis.conf中修改,将
bind 127.0.0.1 ::1注释掉
protected-mode yes改为no
启动redis并查看6379端口是否打开
Systemctl start redis
六、部署集群应用系统
1.nginx配置
在nginx节点安装nginx
Yum install -y nginx
上传前端代码,将提供的dist文件上传至/root目录
删除默认的文件,将dist文件复制进去
[root@nginx ~]# rm -rf /usr/share/nginx/html/* 删除默认文件
[root@nginx ~]# cp -rvf dist/* /usr/share/nginx/html/ 复制文件
修改nginx配置文件/etc/nginx/conf.d/default.conf,添加如下内容
upstream myuser {
server 192.168.119.161:8082; 这里是jar1ip地址
server 192.168.119.162:8082; 这里是jar2ip地址
ip_hash;
}
upstream myshopping {
server 192.168.119.161:8081; jar1ip地址
server 192.168.119.162:8081; jar2ip地址
ip_hash;
}
upstream mycashier {
server 192.168.119.161:8083; jar1ip地址
server 192.168.119.162:8083; jar2ip地址
ip_hash;
}
location /user {
proxy_pass http://myuser;
}
location /shopping {
proxy_pass http://myshopping;
}
location /cashier {
proxy_pass http://mycashier;
}
重启nginx服务并查看80端口是否打开
systemctl restart nginx
2.运行jar包
在jar1,jar2上运行提供的jar包,查看是否在运行
nohup java -jar user-provider-0.0.1-SNAPSHOT.jar &
nohup java -jar shopping-provider-0.0.1-SNAPSHOT.jar &
nohup java -jar gpmall-shopping-0.0.1-SNAPSHOT.jar &
nohup java -jar gpmall-user-0.0.1-SNAPSHOT.jar &
3.打开网页
在浏览器访问httpl://ip,界面如下表示部署成功
标签:zookeeper,192.168,kafka,集群,db1,root,节点,商城,分布式 From: https://blog.csdn.net/2401_82737195/article/details/143036011