# cloud-parent **Repository Path**: chinaxzr/cloud-parent ## Basic Information - **Project Name**: cloud-parent - **Description**: cloud-parent微服务已使用版本及详细介绍说明如下: 1. springcloud: Hoxton.SR8版本 2. springcloud-alibaba: 2.2.4.RELEASE版本 3. springboot: 2.3.2.RELEASE版本 4. nacos: 1.4.1版本 5. sharding-jdbc: 4.1.1版本 6. mybatis-plus: 3.4.2版本 7. alibaba-druid: 1.2.4版本 8. redis: 采用了redis-cluster集群模式 软件架构: 1. 本项目采用目前国内大多数互联网企业都会涉及到的分布式微服务架构,基于springCloud架构的一款脚手架,旨在快速搭建企业框架系统,并能快速运用到实际的开发场景中。 2. 本项目考虑到springCloud最新版本 2020.0.0已经彻底删除掉了Netflix除Eureka外的所有组件,所以在本系统中整个组件将不会用到Netflix系列的所有组件,而是选择了其他的替代组件。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 16 - **Forks**: 4 - **Created**: 2021-01-25 - **Last Updated**: 2022-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cloud-parent QQ技术交流群: 893475872 ## 介绍 cloud-parent微服务已使用版本及详细介绍说明如下: 1. springcloud: Hoxton.SR8版本 2. springcloud-alibaba: 2.2.4.RELEASE版本 3. springboot: 2.3.2.RELEASE版本 4. nacos: 1.4.1版本 5. sharding-jdbc: 4.1.1版本 6. mybatis-plus: 3.4.2版本 7. alibaba-druid: 1.2.4版本 8. redis: 采用了redis-cluster集群模式 ## 软件架构 1. 本项目采用目前国内大多数互联网企业都会涉及到的分布式微服务架构,基于springCloud架构的一款脚手架,旨在快速搭建企业框架系统,并能快速运用到实际的开发场景中。 2. 本项目考虑到springCloud最新版本 2020.0.0已经彻底删除掉了Netflix除Eureka外的所有组件,所以在本系统中整个组件将不会用到Netflix系列的所有组件,而是选择了其他的替代组件。 Netflix组件替代方案如下: | Netflix | 替代品 | 说明 | |---|---|---| | Hystrix | Resilience4j | Hystrix自己也推荐你使用它代替自己 | | Hystrix Dashboard / Turbine | Micrometer + Monitoring System | 说白了,监控这件事交给更专业的组件去做 | | Ribbon | Spring Cloud Loadbalancer | 忍不住了,Spring终究亲自出手 | | Zuul | Spring Cloud Gateway | 忍不住了,Spring终究亲自出手 | ## 项目整体结构 ```text cloud-parent ├── cloud-common │ ├── cloud-common-core │ ├── cloud-server-mybatis-plus │ ├── cloud-common-nacos │ ├── cloud-server-redis-cluster │ ├── cloud-server-retrofit │ ├── cloud-server-security │ ├── cloud-server-seluth │ ├── cloud-server-swagger ├── cloud-server-api │ ├── cloud-server-api-admin │ ├── cloud-server-api-data │ ├── cloud-server-api-trade │ ├── cloud-server-api-user ├── cloud-server-gateway ├── cloud-server-kafka-consumer ├── cloud-server-kafka-producer ├── cloud-server-monitor ├── cloud-server-nacos ├── cloud-server-security ``` ## Docker基础环境搭建 ### 一、centos8安装docker-ce ```text # 禁用firewall防火墙: systemctl stop firewalld systemctl disable firewalld # 安装docker-ce: yum install dnf dnf install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo dnf makecache dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm yum install docker-ce docker-ce-cli # 创建阿里云镜像加速器: mkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://1r2vg2c1.mirror.aliyuncs.com"] } EOF # 重载配置 systemctl daemon-reload # 开机自启动docker: systemctl enable docker # 启动docker: systemctl start docker ``` ### 二、docker安装mysql8.0 ```text # 拉取mysql8.0镜像 docker pull mysql:8.0 # docker run -p 本地主机端口号:容器服务端口号 --name 容器名字 [-e 配置信息修改] -d 镜像名字 docker run -p 3306:3306 --name mysql-8.0 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0 # 以下为进入mysql控制台操作 docker ps docker exec -it 容器ID bash mysql -uroot -p 输入上面已经初始化后的mysql密码:root ``` ### 三、docker安装nacos1.4.1 ```text # 前提:服务器开放8848端口 # 拉取nacos1.4.1镜像 docker pull nacos/nacos-server:1.4.1 # 单机版本启动 # MYSQL_SERVICE_HOST需替换为您自己的内网ip # MYSQL_SERVICE_USER、MYSQL_SERVICE_PASSWORD需替换为您自己的数据库账号密码 docker run -d \ -e MODE=standalone \ -e PREFER_HOST_MODE=hostname \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=1.15.91.251 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=root \ -e MYSQL_SERVICE_DB_NAME=cloud_nacos \ -p 8848:8848 \ --name nacos \ --restart=always \ nacos/nacos-server:1.4.1 # 集群版本启动 # NACOS_SERVERS需替换为您自己集群的多台服务器的内网ip # NACOS_SERVER_IP需替换为您当前所在服务器的内网ip # MYSQL_SERVICE_HOST需替换为您自己的数据库的内网ip # MYSQL_SERVICE_USER、MYSQL_SERVICE_PASSWORD需替换为您自己的数据库账号密码 docker run -d \ --net=host \ --restart=unless-stopped \ --name nacos-server \ --env PREFER_HOST_MODE=hostname \ --env MODE=cluster \ --env NACOS_SERVERS=172.17.0.11:8848,172.17.0.12:8848,172.17.0.13:8848 \ --env NACOS_SERVER_IP=172.17.0.11 \ --env SPRING_DATASOURCE_PLATFORM=mysql \ --env MYSQL_SERVICE_HOST=172.17.0.14 \ --env MYSQL_SERVICE_DB_NAME=cloud_nacos \ --env MYSQL_SERVICE_USER=root \ --env MYSQL_SERVICE_PASSWORD=root \ -p 8848:8848 \ nacos/nacos-server:1.4.1 ``` ### 四、docker安装zipkin + 最新版rabbitMQ + 最新版elasticsearch ```text 一、安装最新版rabbitMQ docker pull rabbitmq:latest docker run -d --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:latest # 启用rabbitmq_management docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management 浏览器访问链接:http://公网ip:15672/#/ 二、安装最新版本ES及Kibana # 安装最新版本es docker pull elasticsearch:latest docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:latest # 修改配置,解决跨域访问问题 docker exec -it elasticsearch /bin/bash cd /usr/share/elasticsearch/config/ # 安装vim apt-get update apt-get install vim vi elasticsearch.yml # 追加一下内容,解决跨域问题 http.cors.enabled: true http.cors.allow-origin: "*" # 重启容器 exit docker restart elasticsearch # 安装kibana docker pull kibana:latest docker run --name kibana --link=elasticsearch:latest -p 5601:5601 -d kibana:latest docker start kibana 浏览器访问链接:http://公网ip:5601/app/kibana 三、安装zipkin docker pull openzipkin/zipkin docker run -d --name zipkin -p 9411:9411 -e RABBIT_ADDRESSES=内网IP:5672 -e RABBIT_USER=admin -e RABBIT_PASSWORD=admin -e STORAGE_TYPE=elasticsearch -e ES_HOSTS=http://内网IP:9200 openzipkin/zipkin 浏览器访问链接:http://公网ip:9411/zipkin/ ```