在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系统
截图:

linux springboot项目部署 linux部署springcloud项目_nginx

四、安装 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
        成功跳转页面

linux springboot项目部署 linux部署springcloud项目_docker_02

七、安装 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 查看
        成功跳转页面

linux springboot项目部署 linux部署springcloud项目_java_03

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 查看
        成功跳转页面

linux springboot项目部署 linux部署springcloud项目_nginx_04

九、安装 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/ 查看
        成功跳转页面

linux springboot项目部署 linux部署springcloud项目_nginx_05

十、部署 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 启动容器
      截图:

linux springboot项目部署 linux部署springcloud项目_linux_06

2.业务运营截图
        ①通过访问网关端口查看通知业务 http:192.168.196.129:9000/notice/  
        访问的同时会远程调用日志模块记录查询操作 日志总数+1

linux springboot项目部署 linux部署springcloud项目_docker_07


②通过访问日志模块可查看日志 浏览器访问:http:192.168.196.129:9001/log/

可查看日志列表,日志总数,再次访问 http:192.168.196.129:9000/notice/ 后 ,再次刷新 http:192.168.196.129:9001/log/ 后 日志总数+1

linux springboot项目部署 linux部署springcloud项目_linux_08

3.部署项目成功访问!