概述

同 SpringCloud 一样,SpringCloud Alibaba 也是一套微服务解决方案,包含开发分布式应用微服务的必需组件,方便开发者通过 SpringCloud 编程模型轻松使用这些组件来开发分布式应用服务。
Spring Cloud Alibaba 新一代微服务解决方案 Spring Cloud Alibaba 参考文档

作为 SpringCloud 体系下的新实现,SpringCloud Alibaba 跟官方的组件或其它的第三方实现如 Netflix, Consul,Zookeeper 等对比,具备了更多的功能:

SpringCloud Alibaba系列组件

SpringCloud Alibaba系列组件

准备工作

我这里是建了一个父级maven项目spring-cloud-alibaba-parent方便统一管理版本
改动版本的时候直接修改<properties>内的版本即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?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>com.coderxi</groupId>
<artifactId>spring-cloud-alibaba-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<!--none-->
</modules>
<packaging>pom</packaging>

<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<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>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>

Nacos(服务发现+分布式配置)

Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Github Releases 码云镜像

Nacos基本架构及概念
Nacos基本架构及概念

Nacos Discovery(服务发现)

  • 根据组件版本关系下载Nacos
  • nacos默认为集群(cluster)模式,为方便测试,先把bin\startup.cmd文件的set MODE="cluster"改为set MODE="standalone"
  • 在有了父项目的基础上,只需要创建一个新的maven moudule,pom配置如下配置~非常干净
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
    <groupId>com.coderxi</groupId>
    <artifactId>spring-cloud-alibaba-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    </parent>
    <artifactId>order-service</artifactId>
    <description>订单模块</description>

    <dependencies>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    </dependencies>

    </project>
  • 接下来,配置一下src/main/resources/application.yml并启动nacos以及项目即可
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    server:
    port: 9001
    spring:
    application:
    name: order-service
    cloud:
    nacos:
    discovery:
    server-addr: localhost:8848
    namespace: public
    username: nacos
    password: nacos
  • nacos中查看服务:访问http://localhost:8848

Nacos Config(配置管理)

TODO

结合Nginx搭建集群

TODO

Dubbo(服务调用+负载均衡+网关)

Dubbo RPC(服务调用)

TODO

Dubbo(负载均衡)

TODO

Dubbo Proxy(服务网关)

TODO