分布式基础篇
项目整体架构与微服务划分
虚拟机环境创建
项目使用 VirtualBox 和 Vagrant 创建 CentOS7 的虚拟机环境。
软件下载链接:
VirtualBox 提取码:lzy1
Vagrant 提取码:lzy1
创建虚拟机时下载速度过慢请使用中科大镜像:
vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
配置虚拟机网络环境:
打开C盘用户下用户名的文件夹,找到已经创建好的 Vagrantfile 文件,编辑此文件找到私有网络配置,将ip地址更改为192.168.56.10,此处是为了方便以后软件通信。
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "192.168.56.10"
保存之后记得要 reload 更改才会生效,即在命令行中执行:
# 重新加载配置文件
vagrant reload
# 重新连接
vagrant ssh
利用Docker安装软件
此时Linux环境已安装完毕,接着在Linux中安装Docker:
官方安装文档
如果之前安装过docker先卸载旧版本:
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
先安装工具:
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
最后安装docker容器:
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动docker:
$ sudo systemctl start docker
设置docker为开机自启动(虚拟机开启后会自动运行不需要再手动启动):
$ sudo systemctl enable docker
查看已经安装的镜像:
$ sudo docker images
为docker配置阿里云的镜像加速:
注册阿里云,找到镜像服务里面的镜像加速器,选择centOS的命令执行,执行完毕后所有的在dockerhub中下载的镜像都会通过阿里云镜像进行下载。
下载MySQL 5.7版本:
$ sudo docker pull mysql:5.7
创建实例并且启动:
# 先切换到root用户下
$ su root
# 输入密码
vagrant
# 将容器的3306端口映射到主机的3306端口
docker run -p 3306:3306 --name mysql
# 将日志文件夹挂载到主机
docker run -v/mydata/mysql/log:/var/log/mysql
# 将配置文件夹挂载到主机
docker run -v/mydata/mysql/data:/var/lib/mysql
# 将配置文件夹挂载到主机
docker run -v/mydata/mysql/conf:/etc/mysql
# 初始化root用户的密码也为root
docker run -e MYSQL_ROOT_PASSWORD=root
# 以后台方式运行
docker run -d mysql:5.7
#上面视频中代码路径少加了一个master,一直导致无法启动,正确命令在下面
docker run -p 3306:3306 --name mysql-master \
-v /mydata/mysql/master/log:/var/log/mysql \
-v /mydata/mysql/master/data:/var/lib/mysql \
-v /mydata/mysql/master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
# 查看正在运行的镜像
docker ps
# 修改mysql配置
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
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
skip-name-resolve
# 重新启动容器
docker restart 容器ID
MYSQL 可视化工具我用的是Navicat,给出链接可下载使用。Navicat 提取码:lzy1
在root用户下继续下载 Redis:
docker pull redis
创建实例并启动:
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v/mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
redis持久化操作:
appendonly yes
进入redis控制台:
docker exec -it redis redis-cli
一个很好用的redis可视化工具:
AnotherRedisDesktopManagement 提取码:lzy1
设置容器为docker运行后自动重启:
sudo docker update 容器ID --restart=always
clone 人人开源
按照步骤将前后端开源的资源下载到电脑。
git clone https://gitee.com/renrenio/renren-fast.git
git clone https://gitee.com/renrenio/renren-fast-vue.git
git clone https://gitee.com/renrenio/renren-generator.git
后端添加进目录如果发现没有变成module的话,在右侧maven中点加号添加进renren-fast的pom文件刷新即可。
这里前端使用npm出现好多问题,亲测使用cnpm解决一切。
步骤:首先按照步骤安装nodeJS 并且配置镜像,这里注意版本!! 最好和视频用的一样10.16的,不然可能出问题。nodeJS10.16视频版本 提取码:lzy1
按照视频安装完成NodeJS后,配置加速:
npm config set registry http://registry.npm.taobao.org/
再安装cnpm:
npm install cnpm -g --registry=https://registry.npm.taobao.org
用管理员身份(很重要)打开VScode,在软件终端输入:
cnpm install
完美下载所有依赖,无报错。
输入:
npm run dev
前端页面成功运行。