centos7使用集群服务搭建——商城网站

商城网站——集群服务搭建

一:基础环境配置(镜像用的是CentOS-7-x86_64-DVD-1511.iso)

1】配置网卡和主机名(虚拟机安装的时候使用的是:basic network services)

[root@mall ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777728 
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777728
UUID=c0f1a360-5aa7-48d8-8940-c5da25bec069
DEVICE=eno16777728
ONBOOT=yes

IPADDR=192.168.33.106
NETMASK=255.255.255.0
GATEWAY=192.168.33.2
DNS1=8.8.8.8
[root@mall ~]# hostname mall
[root@mall ~]# bash
[root@mall ~]# vim /etc/hostname	进入配置文件,修改原来的主机名,保存退出,重启即可生效。

2】永久关闭防火墙和selinux

[root@mall ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@mall ~]# systemctl disable firewalld.service 
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@mall ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2023-01-15 20:19:01 CST; 14min ago
 Main PID: 920 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─920 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Jan 15 20:19:00 mall systemd[1]: Starting firewalld - dynamic firewall daemon...
Jan 15 20:19:01 mall systemd[1]: Started firewalld - dynamic firewall daemon.

3】本地yum源配置和gpmall-repo挂载:

(1)上传gpmall-repo的服务软件包,我这里用的是windTerm连接的虚拟机。

(可能是由于centos7的虚拟机在安装时设置了基础服务配置,导致了安装java服务出现了冲突问题)

所以我们配置完镜像挂载后,先安装完Java的服务后再配置gpmall-repo的挂载。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ZCLUTcy-1673786173738)(一:基础环境配置.assets/image-20230115141536030.png)]

进行yum源配置:

[root@mall ~]# cd /opt/
[root@mall opt]# mkdir centos
[root@mall opt]# cd /etc/yum.repos.d/
[root@mall yum.repos.d]# mkdir bak
[root@mall yum.repos.d]# mv CentOS-* bak/
[root@mall yum.repos.d]# vim local.repo
[root@mall yum.repos.d]# cat local.repo 
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[root@mall yum.repos.d]# yum clean all
[root@mall yum.repos.d]# mount /dev/cdrom /opt/centos/
mount: /dev/sr0 is write-protected, mounting read-only
[root@mall yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
centos                                                                                                             | 3.6 kB  00:00:00     
(1/2): centos/group_gz                                                                                             | 155 kB  00:00:00     
(2/2): centos/primary_db                                                                                           | 2.8 MB  00:00:00     
Determining fastest mirrors
repo id                                                           repo name                                                         status
centos                                                            centos                                                            3,723
repolist: 3,723

二:安装服务

1】安装java-1.8.0-openjdk和java-1.8.0-openjdk-devel服务

[root@mall ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package java-1.8.0-openjdk.x86_64 1:1.8.0.65-3.b17.el7 will be installed
......		(这里省略了安装过程,直接看结果吧)
Installed:
  java-1.8.0-openjdk.x86_64 1:1.8.0.65-3.b17.el7                   java-1.8.0-openjdk-devel.x86_64 1:1.8.0.65-3.b17.el7                  

Dependency Installed:
  fontconfig.x86_64 0:2.10.95-7.el7                            fontpackages-filesystem.noarch 0:1.44-8.el7                                
  giflib.x86_64 0:4.1.6-9.el7                                  java-1.8.0-openjdk-headless.x86_64 1:1.8.0.65-3.b17.el7                    
  javapackages-tools.noarch 0:3.4.1-11.el7                     libICE.x86_64 0:1.0.9-2.el7                                                
  libSM.x86_64 0:1.2.2-2.el7                                   libXext.x86_64 0:1.3.3-3.el7                                               
  libXfont.x86_64 0:1.5.1-2.el7                                libXi.x86_64 0:1.7.4-2.el7                                                 
  libXrender.x86_64 0:0.9.8-2.1.el7                            libXtst.x86_64 0:1.2.2-2.1.el7                                             
  libfontenc.x86_64 0:1.1.2-3.el7                              libxslt.x86_64 0:1.1.28-5.el7                                              
  lksctp-tools.x86_64 0:1.0.13-3.el7                           python-javapackages.noarch 0:3.4.1-11.el7                                  
  python-lxml.x86_64 0:3.2.1-4.el7                             ttmkfdir.x86_64 0:3.0.9-42.el7                                             
  tzdata-java.noarch 0:2015g-1.el7                             xorg-x11-font-utils.x86_64 1:7.5-20.el7                                    
  xorg-x11-fonts-Type1.noarch 0:7.5-9.el7                     

Complete!
[root@mall ~]# java -version		--查看是否安装成功,显示如下表示安装成功
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

2】将上传的gpmall-repo挂载,再进行安装redis,nginx,mariadb,Elasticsearch服务。

[root@mall ~]# ll
total 4
-rw-------. 1 root root 1004 Jan 15 20:06 anaconda-ks.cfg
drwxr-xr-x. 5 root root   50 Jan 15 20:36 gpmall-repo
[root@mall ~]# vim /etc/yum.repos.d/local.repo
[root@mall ~]# cat /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[mall]
name=mall
baseurl=file:///root/gpmall-repo
gpgcheck=0
enabled=1
[root@mall ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
centos                                                                                                             | 3.6 kB  00:00:00     
mall                                                                                                               | 2.9 kB  00:00:00     
mall/primary_db                                                                                                    | 144 kB  00:00:00     
Loading mirror speeds from cached hostfile
repo id                                                           repo name                                                         status
centos                                                            centos                                                            3,723
mall                                                              mall                                                                165
repolist: 3,888
[root@mall ~]# yum -y install redis
[root@mall ~]# yum -y install nginx
[root@mall ~]# yum install mariadb mariadb-server -y
[root@mall ~]# yum -y install elasticsearch

3】安装zookeeper和kafka服务,并启动配置

将提供的 zookeeper-3.4.14.tar.gz 和kafka_2.11-1.1.1.tgz上传至云主机的/opt 内,解压:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j4uGrKR0-1673786173739)(一:基础环境配置.assets/image-20230115144356371.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qrbt6Bc7-1673786173740)(一:基础环境配置.assets/image-20230115144647376.png)]

[root@mall opt]# tar -zxvf zookeeper-3.4.14.tar.gz
[root@mall opt]# tar -zxvf kafka_2.11-1.1.1.tgz

(1)进入到 zookeeper-3.4.14/conf 目录下,将 zoo_sample.cfg 文件重命名为 zoo.cfg

[root@mall conf]# mv zoo_sample.cfg zoo.cfg

进入到 zookeeper-3.4.14/bin 目录下,启动 ZooKeeper 服务

#(/opt/zookeeper-3.4.14/bin/zkServer.sh start)		--整个也可以直接启动
[root@mall bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@mall bin]# ./zkServer.sh status		--查看状态
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: standalone

(2)进入到 kafka_2.11-1.1.1/bin 目录下,启动 Kafka 服务

[root@mall bin]# /opt/kafka_2.11-1.1.1/bin/kafka-server-start.sh -daemon /opt/kafka_2.11-1.1.1/config/server.properties
(如果第一个没有启动成功,也可以试下第二个)
[root@mall bin]# ./kafka-server-start.sh -daemon ../config/server.properties

使用 jps 或者 netstat –ntpl 命令查看 Kafka 是否成功启动

[root@mall bin]# jps
29424 Kafka
29472 Jps
28792 QuorumPeerMain
[root@mall bin]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1530/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1628/master         
tcp6       0      0 :::22                   :::*                    LISTEN      1530/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1628/master         
tcp6       0      0 :::47332                :::*                    LISTEN      28792/java          
tcp6       0      0 :::2181                 :::*                    LISTEN      28792/java          

三:启动并配置各项服务服务

1】启动并配置mariadb数据库服务:

(1)修改数据库配置文件,并启动 MariaDB 数据库,设置 root 用户密码为 123456,并创建 gpmall数据库,将提供的 gpmall.sql 导入

[root@mall ~]# vim /etc/my.cnf
[root@mall ~]# cat /etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
[mysqld]
port=8066
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

[root@mall ~]# cat /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
# converted using /usr/bin/mariadb-service-convert
#

[Service]
(以上是查看的内容)

[root@mall ~]# rm -f /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
[root@mall ~]# ln -s /etc/my.cnf /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
[root@mall ~]# cat /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
[mysqld]
port=8066
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

# 如果启动出错,则查看是否在使用错误配置文件
cat /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
# 如果文件存在就删除
rm -f /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
# 创建 my.cnf 的软连接至此处
ln -s /etc/my.cnf /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
# 再次查看
cat /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf

# 重启虚拟机,再查看状态
##配置数据库:
mysql_secure_installation

按 enter 								继续
按 y 									继续
输入密码 123456 						  继续
输入密码 123456 						  继续
...
按 y 									继续
按 n 									继续
按 y 									继续
按 y 									继续

# 将gpmall-mall.sql的文件上传到/root目录下
# 进入数据库
mysql -u root -p 123456

grant all privileges on *.* to root@localhost identified by '123456' with grant option;
grant all privileges on *.* to root@"%" identified by '123456' with grant option;
create database gpmall;
use gpmall;
source /root/gpmall.sql;
exit;

2】启动并配置redis服务:

编辑配置

vim /etc/redis.conf

将bind=127.0.0.1这一行注释掉
protected-mode yes				=改为=>          protected-mode no

启动

systemctl start redis
systemctl enable redis

3】启动并配置Elasticsearch服务:

vim /etc/elasticsearch/elasticsearch.yml

# 在头部添加:
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-credentials: true

# 将如下4条语句前的注释符去掉,并修改network.host的IP为本机 IP
cluster.name: my-application
node.name: node-1
network.host: 127.0.0.1(本机IP)
http.port: 9200

启动

systemctl start elasticsearch
systemctl enable elasticsearch

4】启动并配置nginx服务:

systemctl start nginx
systemctl enable nginx

四:全局变量配置,部署前后端

1】修改配置文件:

[root@mall ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1(本机IP地址) mall
127.0.0.1 kafka.mall
127.0.0.1 mysql.mall
127.0.0.1 redis.mall
127.0.0.1 zookeeper zookeeper.mall zk1.mall zk2.mall zk3.mall
127.0.0.1 kafka1.mall kafka2.mall kafka3.mall

2】部署前端:

将 dist 目录上传至服务器的/usr/share/nginx/html目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cdvrCBL5-1673786173741)(一:基础环境配置.assets/image-20230115162119434.png)]

也可以先复制到/root目录下再复制过去

# 删除默认的
[root@mall ~]# rm -rf /usr/share/nginx/html/*
# 复制过去
[root@mall ~]# cp -rvf dist/* /usr/share/nginx/html/

修改 Nginx 配置文件/etc/nginx/conf.d/default.conf

[root@mall ~]# vim /etc/nginx/conf.d/default.conf
# 在文档的第12行插入如下类容,对齐格式
    location /user {
        proxy_pass http://192.168.33.106:8082;
    }
    location /shopping {
        proxy_pass http://192.168.33.106:8081;
    }   
    location /cashier {
        proxy_pass http://192.168.33.106:8083;
    }

重启服务:

systemctl restart nginx

3】部署后端:

将提供的 4 个 jar 包上传到服务器的/root 目录下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-39n7MOpL-1673786173742)(一:基础环境配置.assets/image-20230115165651547.png)]

重新启动之前停止的服务,如果启动了就不需要再启动了,以免出现无法开启的情况,并查看状态:

systemctl restart redis
systemctl restart elasticsearch
systemctl restart nginx
systemctl restart mariadb
# 最重要的是以下zookeeper和Kafka服务的状态:
## 启动Kafka服务
/opt/kafka_2.11-1.1.1/bin/kafka-server-start.sh -daemon /opt/kafka_2.11-1.1.1/config/server.properties
## 启动zookeeper服务
/opt/zookeeper-3.4.14/bin/zkServer.sh start

当所有服务启动完成后,查看接口状态没有问题后,再进行服务安装:

# nohup(非挂起运行)  加上这个命令,将以下服务在后台运行
# nohup java -jar shopping-provider-0.0.1-SNAPSHOT.jar &	(后台运行)

java -jar shopping-provider-0.0.1-SNAPSHOT.jar
java -jar user-provider-0.0.1-SNAPSHOT.jar
(以下俩个服务:需要等前俩个运行后在进行运行,否则会有出现需要第二次运行的情况)
java -jar gpmall-shopping-0.0.1-SNAPSHOT.jar
java -jar gpmall-user-0.0.1-SNAPSHOT.jar

## 使用以上命令进行服务开启,最好是一个一个进行;
## 当服务运行一段时间后,出现卡停的情况实,是正常现象;
## 然后去浏览器访问查看是否显示页面。

五:浏览器访问主机IP地址


项目4-软件包
https://www.aliyundrive.com/s/CdKwtyi4Q9U
提取码: pk28
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

Open JDK安装:
官网下载:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
安装参考:http://openjdk.java.net/install/
Centos镜像下载:https://www.centos.org/download/


版权声明:本文为qq_65100354原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。