白菜Java自习室 涵盖核心知识java
Spring Cloud Alibaba 实战(一)准备篇
Spring Cloud Alibaba 实战(二)Nacos篇
Spring Cloud Alibaba 实战(三)Sentinel篇
Spring Cloud Alibaba 实战(四)Oauth2篇
Spring Cloud Alibaba 实战(五)Zuul篇
Spring Cloud Alibaba 实战(六)RocketMQ篇
Spring Cloud Alibaba 实战(七)Seata篇
Spring Cloud Alibaba 实战(八)SkyWalking篇
mysql
项目 GitHub 地址:github.com/D2C-Cai/her…
git
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者经过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。github
依托 Spring Cloud Alibaba,您只须要添加一些注解和少许配置,就能够将 Spring Cloud 应用接入阿里微服务解决方案,经过阿里中间件来迅速搭建分布式应用系统。web
项目的版本号格式为 x.x.x 的形式,其中 x 的数值类型为数字,从 0 开始取值,且不限于 0~9 这个范围。项目处于孵化器阶段时,第一位版本号固定使用 0,即版本号为 0.x.x 的格式。redis
因为 Spring Boot 1 和 Spring Boot 2 在 Actuator 模块的接口和注解有很大的变动,且 spring-cloud-commons 从 1.x.x 版本升级到 2.0.0 版本也有较大的变动,所以咱们采起跟 SpringBoot 版本号一致的版本:spring
Spring Cloud Alibaba 实战系列教程目前一共会分为如下几个部分,教你们如何使用docker部署服务,实战应用分布式套件:sql
组件 | 功能 |
---|---|
Nacos | 动态服务发现、配置管理 |
Sentinel | 流量控制、熔断降级、系统负载保护 |
Seata | 高性能微服务分布式事务 |
RocketMQ | 高可用分布式消息系统 |
Zuul+Oauth2 | 分布式网关鉴权系统 |
SkyWalking | 分布式链路追踪与监控系统 |
本系列教程专门开篇来介绍准备工做,来减小你们在实战过程当中的疑惑。以实战为主,基本原理为辅,具体深刻原理分析将会另外开篇,敬请期待。docker
Docker 的 安装资源文件 存放在Amazon S3,会间歇性链接失败。因此安装Docker的时候,会比较慢。 你能够经过执行下面的命令,高速安装Docker。适用于Ubuntu,Debian,Centos等大部分Linux,会3小时同步一次Docker官方资源。数据库
curl -sSL https://get.daocloud.io/docker | sh
复制代码
Docker Compose 存放在Git Hub,不太稳定。你能够也经过执行下面的命令,高速安装Docker Compose。你能够经过修改URL中的版本,能够自定义您的须要的版本。
curl -L https://get.daocloud.io/docker/compose/releases/download/1.28.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
复制代码
chmod +x /usr/local/bin/docker-compose
复制代码
配置 Docker 镜像站*。该脚本能够将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.0四、Debian、CentOS6 、CentOS七、Fedora、Arch Linux、openSUSE Leap 42.1,其余版本可能有细微不一样。
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
复制代码
首先,起一个本身的项目名字,这里教程统一叫作:herring(鲱鱼)
herring-xxx 之因此在中间件的项目上包一层,是由于不少企业级开发须要本身的二次封装。项目的建法仁者见仁,智者见智,读者没必要过于纠结,按照本身的习惯创建便可。
主项目 | 第一层 | 第二层 | 项目说明 |
---|---|---|---|
herring | herring-alibaba | herring-nacos | 动态服务发现、配置管理 |
herring-sentinel | 流量控制、熔断降级、系统负载保护 | ||
herring-seata | 高性能微服务分布式事务 | ||
herring-rocketmq | 高可用分布式消息系统 | ||
herring-common | herring-feign | 声明式的 web service 客户端 | |
herring-mysql | 数据库选择 mysql | ||
herring-redis | 分布式缓存选择 redis | ||
herring-tools | 经常使用工具包 jwt, lombok 等 | ||
herring-services | herring-base | 服务基础客户端 nacos, sentinel, skywalking 的客户端 | |
herring-base-tx | 服务事务相关客户端 seata, rocketmq 的客户端 | ||
herring-product | 自建实验微服务(你能够本身随便建) | ||
herring-member | 自建实验微服务(你能够本身随便建) | ||
herring-orders | 自建实验微服务(你能够本身随便建) | ||
herring-security | herring-oauth2 | oauth2.0 安全认证服务 | |
herring-gateway | zuul 分布式网关服务 | ||
herring-skywalking | 分布式链路追踪与监控系统 |
主项目 | 第一层 |
---|---|
spring-boot | 2.2.3.RELEASE |
spring-cloud | Hoxton.SR5 |
spring-cloud-alibaba | 2.2.3.RELEASE |
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jackey</groupId>
<artifactId>herring</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.version>1.8</java.version>
<spring-cloud-alibaba.version>2.2.3.RELEASE</spring-cloud-alibaba.version>
<spring-cloud.version>Hoxton.SR5</spring-cloud.version>
<spring-boot.version>2.2.3.RELEASE</spring-boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
复制代码
拉取 MySQL 5.7 版本的镜像
docker pull daocloud.io/library/mysql:5.7.4
复制代码
启动 MySQL 5.7 镜像的容器,注意设置初始密码 和 映射数据存档目录
docker run --name mysql_5.7 -v /docker/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=(你的root密码) -d daocloud.io/library/mysql:5.7.4
复制代码
拉取 Redis 3.2 版本的镜像
docker pull daocloud.io/library/redis:3.2.8
复制代码
启动 Redis 3.2 镜像的容器,注意设置持久化参数 和 映射数据存档目录
docker run --name redis_3.2 -v /docker/redis/data:/data -p 6379:6379 -d daocloud.io/library/redis:3.2.8 redis-server --appendonly yes
复制代码
Spring Cloud Alibaba 实战(一)准备篇
Spring Cloud Alibaba 实战(二)Nacos篇
Spring Cloud Alibaba 实战(三)Sentinel篇
Spring Cloud Alibaba 实战(四)Oauth2篇
Spring Cloud Alibaba 实战(五)Zuul篇
Spring Cloud Alibaba 实战(六)RocketMQ篇
Spring Cloud Alibaba 实战(七)Seata篇
Spring Cloud Alibaba 实战(八)SkyWalking篇
项目 GitHub 地址:github.com/D2C-Cai/her…