首页 > 其他分享 >分布式集群商城应用部署

分布式集群商城应用部署

时间:2024-10-18 10:49:13浏览次数:8  
标签:zookeeper 192.168 kafka 集群 db1 root 节点 商城 分布式

一、准备工作

1.节点规划

  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

相关文章

  • k8s-Longhorn系统配置 20241017 -分布式存储
    目录一Longhorn存储部署1.1Longhorn概述1.2Longhorn部署1.5动态sc创建1.6测试PV及PVC1.7Ingress暴露Longhorn1.8确认验证附加Helm部署附0.1helm安装附0.2helm安装 回到顶部一Longhorn存储部署1.1Longhorn概述Longhorn是用于Kubernetes的......
  • 《使用Gin框架构建分布式应用》阅读笔记:p77-p87
    《用Gin框架构建分布式应用》学习第5天,p77-p87总结,总计11页。一、技术总结1.Go知识点(1)context2.on-premisessoftwarep80,AcontainerislikeaseparateOS,butnotvirtualized;itonlycontainsthedependenciesneededforthatoneapplication,whichmakesthe......
  • hdfs集群的shell操作
    1.进程启停管理:一键启动hdfs集群: start-dfs.sh一键关闭hdfs集群: stop-dfs.sh单独控制进程启停:hadoop-daemon.sh(start|status|stop)(namenode|datanode|secondarynamenode)     或者hadoop--daemon(start|status|stop)(namenode|datanode......
  • 【开题报告】基于django+vue基于智能点击推荐的在线购物商城系统(论文+源码)计算机毕
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为现代商业活动的重要组成部分。在线购物商城作为电子商务的核心平台,不仅为消费者提供了便捷、高效......
  • rancher安装并快速部署k8s 管理集群工具
    主机准备 准备4台主机3台用于k8s集群,1台用于rancher每台服务器新增配置文件vietc/sysctl.confnet.ipv4.ip_forward=1刷新生效sysctl–p安装docker安装的时候可以去github上检索rancher看看最新版本适配那个版本的docker,这里安装23.0.1版本yuminstall-yd......
  • uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝扫码支付/收付款
    uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝扫码支付/收付款等功能,界面漂亮颜值高,视频商城小工具等,蚂蚁森林种树养鸡农场偷菜样样齐用于视频,商城,直播,聊天等sumer-alipay介绍uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝......
  • uniapp精仿微信源码,基于SumerUI和Uniapp前端框架的一款仿微信APP应用,界面漂亮颜值高,视
    uniapp精仿微信源码,基于SumerUI和Uniapp前端框架的一款仿微信APP应用,界面漂亮颜值高,视频商城小工具等,朋友圈视频号即时聊天用于视频,商城,直播,聊天,等等场景,源码分享sumer-weixin介绍uniapp精仿微信,基于SumerUI3.0和Uniapp前端框架的一款仿微信APP应用,界面漂亮颜值高,视频......
  • k8s部署Kafka集群超详细讲解
    准备部署环境Kubernetes集群信息NAMEVERSIONk8s-masterv1.29.2k8s-node01v1.29.2k8s-node02v1.29.2Kafka:3.7.1版本Zookeeper:3.6.3版本准备StorageClass#kubectlgetscNAMEPROVISIONERRECLAIMPOLICYVOLUMEBINDINGMODEALLOWVOLUMEEXPAN......
  • hadoop完全分布式模式
    1.下载、上传、解压,添加环境变量。tarzxf/opt/software/hadoop-2.7.6.tar.gz-C/usr/local/src2.JAVA_HOMEhadoop-env.sh:修改JAVA_HOMEexportJAVA_HOME=/usr/local/src/jdk1.8.0_1813.NameNodehdfs-site.xml:namenode命令的存放路径;namenode的数据存放路径;设置备......
  • 分布式事务解决方案(一):事务的基本概念
    如果你觉得这篇文章对你有帮助,请不要吝惜你的“关注”、“点赞”、“评价”、“收藏”,你的支持永远是我前进的动力~~~一、事务的基本概念事务是确保数据库操作一致性的重要机制,而根据其涉及的资源和系统结构的不同,可以分为本地事务和分布式事务两种类型。事务:访问并更新......