白菜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…