在linux系统部署SpringCloudAlibaba微服务项目及访问
一、涉及环境所需技术
容器引擎docker、java jdk、数据库mysql、负载均衡nginx、配置中心nacos、流控熔断sentinel、链路追踪zipkin、网关模块gateway、日志模块ms-log、通知模块ms-notice、MobaXterm 软件进行linux图形化界面。
二、安装 Docker 容器
1.安装 yum-utils (管理repository及扩展包的工具,可提供yum操作性能)
sudo yum install -y yum-utils
2.设置 docker 安装镜像
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.启动 docker
sudo systemctl start docker
4.设置 docker 自启动
sudo systemctl enable docker
5.检查 docker 版本
docker -v
三、windows系统安装 MobaXterm 连接远程linux系统
截图:
四、安装 java JDK
1.拉取 java 镜像 (默认最新版本)
docker pull java
2.检查 java 镜像
docker images
五、安装 mysql 数据库 port:3306
1.拉取 mysql 镜像
docker pull mysql:8.0.23
2.检查 mysql 镜像
docker images
3.启动运行 mysql 镜像 (docker run 用于启动一个容器)
sudo docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.23
4.查看 docker 中是否已启动 mysql
docker ps
5.如安装过程中失败,则可通过 docker ps -a 查看以前的容器,如存在,则通过docker rm 镜像id 删除再重新安装即可。
6.启动 mysql 服务
docker start mysql
7.设置 mysql 开机自启动(可选)
docker update mysql --restart=always
8.进入容器 (退出容器用exit)
docker exec -it mysql bash
9.登录mysql(默认密码root)
mysql -uroot -proot
六、安装 nginx 负载均衡 port:8081
1.拉取 ngnix 镜像(默认最新版本)
docker pull nginx
2.查看 nginx 镜像
docker images
3.启动 nginx
docker run --name nginx -d nginx
4.检测安装的内容
docker exec nginx ls -l /etc/nginx
5.拷贝安装好的配置文件
docker cp -a nginx:/etc/nginx /usr/local/docker/nginx
6.强制卸载刚刚安装的 nginx
docker rm -f nginx
7.启动 nginx 容器,运行 nginx 镜像
sudo docker run -p 8081:8081 --restart always --name nginx \
-v /usr/local/docker/nginx/:/etc/nginx/ \
-v /usr/local/docker/nginx/conf.d:/etc/nginx/conf.d \
-d nginx
8.在浏览器中访问 http://ip:8081
成功跳转页面
七、安装 nacos 配置中心 port:8848
1.拉取 nacos 镜像
docker pull nacos/nacos-server:1.4.1
2.执行导入 nacos 的数据库配置文件
导入步骤:① 将数据库文件 nacos_config.sql 拷入安装路径 /usr/local/docker/mysql/conf/ 文件夹下 (可在mysql容器中的/etc/mysql/ 导入sql文件)
② 进入 mysql 容器 : docker exec -it mysql bash
③ 登录 mysql : mysql -uroot -proot
④ create database nacos_config;
⑤ use nacos_config;
⑥ source /etc/mysql/nacos_config.sql; 导入完毕
⑦ 可通过 show tables; 查看数据库中表
3.创建运行 nacos 容器
docker run -d \
-e MODE=standalone \ #单例模式
-e PREFER_HOST_MODE=hostname \ #主机名
-e SPRING_DATASOURCE_PLATFORM=mysql \ #数据库平台
-e MYSQL_SERVICE_HOST=192.168.196.129 \ #linux系统的ip
-e MYSQL_SERVICE_PORT=3306 \ #mysql端口号
-e MYSQL_SERVICE_USER=root \ #用户名
-e MYSQL_SERVICE_PASSWORD=root \ #密码
-e MYSQL_SERVICE_DB_NAME=nacos_config \ #数据库名
-p 8848:8848 \ #nacos 端口
--name nacos \ #服务名
--restart=always \ #自启动
nacos/nacos-server:1.4.1 #nacos 版本
4.在浏览器中访问 http://ip:8848/nacos 查看
成功跳转页面
5.如不可以访问,可通过 docker container logs nacos 去查看日志
八、安装 sentinel 流控熔断 port:8858
1.拉取 sentinel 镜像
docker pull bladex/sentinel-dashboard:1.7.0
2.创建运行 sentinel 容器
docker run --name sentinel -d -p 8858:8858 bladex/sentinel-dashboard:1.7.0
3.在浏览器中输入http://ip:8858 查看
成功跳转页面
九、安装 zipkin 链路追踪 port:9411
1.拉取 zipkin 镜像
docker pull openzipkin/zipkin
2.创建运行 zipkin 容器
docker run -d --restart always -p 9411:9411 --name zipkin openzipkin/zipkin
3.在浏览器访问 http://ip:9411/zipkin/ 查看
成功跳转页面
十、部署 gateway 业务网关模块 port:9000
1.先将 idea 项目中网关模块业务打包成jar包
2.通过 MobaXterm 将 gateway.jar 导入 linux系统下 /root/libs/app
3.创建运行 gateway 容器
docker run -d -p 9000:9000 \
--name gateway \
-v /root/libs/app:/app java \
java -Dcsp.sentinel.app.type=1 -jar /app/gateway.jar
4.查看是否成功运行
docker ps
十一、部署 ms-log 日志模块 port:9001
1.先将 idea 项目中日志模块业务打包成jar包
2.通过 MobaXterm 将 ms-log.jar 导入 linux系统下 /root/libs/app
3.创建运行 ms-log 容器
docker run -d -p 9001:9001 \
--name ms-log\
-v /root/libs/app:/app java \
java -Dcsp.sentinel.app.type=1 -jar /app/ms-ms-log.jar
4.查看是否成功运行
docker ps
十二、部署 ms-notice 通知模块 port:9002
1.先将 idea 项目中通知模块业务打包成jar包
2.通过 MobaXterm 将 ms-notice .jar 导入 linux系统下 /root/libs/app
3.创建运行 notice 容器
docker run -d -p 9002:9002 \
--name ms-notice \
-v /root/libs/app:/app java \
java -Dcsp.sentinel.app.type=1 -jar /app/ms-notice .jar
4.查看是否成功运行
docker ps
十三、保证上述步骤全部执行成功后设置 网关 gateway 层面的 nginx 负载均衡
1.进入配置文件目录
cd /usr/local/docker/nginx/conf.d/
2.打开配置文件
vim default.conf
3.修改配置文件 i 插入文字 :q不保存退出,q!强制不保存退出,:wq! 强制保存退出
①修改 server
location / {
proxy_pass http://gateways;
#root /usr/share/nginx/html;
#index index.html index.htm;
}
②在server上方添加
upstream gateways{
server 192.168.196.129:9000 max_fails=2 fail_timeout=60s;
server 192.168.196.129:9100 max_fails=2 fail_timeout=60s;
}
③:wq保存退出
十四、运行结果演示
1.docker ps 查看 保证上述全部容器已经启动,若有未启动 可通过 docker start 容器名/容器ID 启动容器
截图:
2.业务运营截图
①通过访问网关端口查看通知业务 http:192.168.196.129:9000/notice/
访问的同时会远程调用日志模块记录查询操作 日志总数+1
②通过访问日志模块可查看日志 浏览器访问:http:192.168.196.129:9001/log/
可查看日志列表,日志总数,再次访问 http:192.168.196.129:9000/notice/ 后 ,再次刷新 http:192.168.196.129:9001/log/ 后 日志总数+1
3.部署项目成功访问!