侧边栏

【SpringCloudAlibaba系列】父工程搭建

1、微服务

  什么是微服务?维基上简单定义:一种面向服务的体系结构(SOA)架构样式的一种变体,将单一应用程序划分一组小的服务,服务之间互相协调、配合。每个服务独立运行,服务之间采用轻量级通信机制相互沟通(通常基于http的restful api),每个服务独立部署,围绕具体业务进行构建,避免统一、集中式的服务管理机制,对具体的一个服务而言,根据上下文,选择合适的语言、工具对其进行构建。
  微服务是一种用于构建应用的架构方案,微服务架构有别于传统的单体方案,将应用拆分为多个核心功能。每个功能都是一个服务,独立部署,各服务出现故障时不会互相影响。

2、SpringCloud介绍

  Spring Cloud系列框架是有序集合,利用SpringBoot的开发便利性巧妙简化分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用springboot开放风格做到一键部署和启动。springcloud没有重复造轮子,只是将成熟的框架组合起来,通过springboot风格再封装屏蔽复杂的配置和实现原理,留给开发一套简单易懂、易部署、维护的分布式开放工具包。

3、SpringCloudAlibaba

  springcloud中所有组件都使用Netflix公司产品,然后在基础上做了一层封装。然而Netflix的服务发现组件Eureka已经停止更新,并且里面存在细小bug,其他众多组件预计2020年停止维护,所以需要其他产品替代。
  springcloud alibaba是springcloud下的子项目,为分布式应用程序提供一站式解决方案,包含开放分布式应用所有组件,开发时,只需添加一些注释和少量配置就可以将springcloud应用程序连接到alibaba分布式解决方案。

官方链接

官方自述:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

官方github:https://github.com/alibaba/spring-cloud-alibaba

官方Samples:https://github.com/alibaba/spring-cloud-alibaba/tree/master/spring-cloud-alibaba-examples

版本兼容

SpringCloud和SpringBoot的版本兼容:

https://spring.io/projects/spring-cloud

SpringCloudAlibaba和SpringBoot的版本兼容:

https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

Spring Cloud VersionSpring Cloud Alibaba VersionSpring Boot Version

Spring Cloud 2020.0.1

2021.1

2.4.2

Spring Cloud Hoxton.SR12

2.2.7.RELEASE

2.3.12.RELEASE

Spring Cloud Hoxton.SR9

2.2.6.RELEASE

2.3.2.RELEASE

Spring Cloud Greenwich.SR6

2.1.4.RELEASE

2.1.13.RELEASE

Spring Cloud Hoxton.SR3

2.2.1.RELEASE

2.2.5.RELEASE

Spring Cloud Hoxton.RELEASE

2.2.0.RELEASE

2.2.X.RELEASE

Spring Cloud Greenwich

2.1.2.RELEASE

2.1.X.RELEASE

Spring Cloud Finchley

2.0.4.RELEASE(停止维护,建议升级)

2.0.X.RELEASE

Spring Cloud Edgware

1.5.1.RELEASE(停止维护,建议升级)

1.5.X.RELEASE

SpringCloudAlibaba官方整理的版本说明:

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ VersionDubbo VersionSeata Version

2.2.7.RELEASE*

1.8.1

2.0.3

4.6.1

2.7.13

1.3.0

2.2.6.RELEASE

1.8.1

1.4.2

4.4.0

2.7.8

1.3.0

2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE

1.8.0

1.4.1

4.4.0

2.7.8

1.3.0

2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE

1.8.0

1.3.3

4.4.0

2.7.8

1.3.0

2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE

1.7.1

1.2.1

4.4.0

2.7.6

1.2.0

2.2.0.RELEASE

1.7.1

1.1.4

4.4.0

2.7.4.1

1.0.0

2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE

1.7.0

1.1.4

4.4.0

2.7.3

0.9.0

2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE

1.6.3

1.1.1

4.4.0

2.7.3

0.7.1

本演示项目使用版本:

 

Spring Cloud Version:Hoxton.SR12

 

Spring Cloud Alibaba Version:2.2.7.RELEASE

 

Spring Boot Version:2.3.12.RELEASE

4、快速搭建

  准备:开发工具IOS版 IntelliJ IDEA 2021.3.1 (Ultimate Edition)、jdk1.8、Maven:apache-maven-3.8.4

  要求:熟悉springboot

4.1构建父工程

  整个项目由maven管理,这里使用默认初始化地址不然后面选择Maven pom创建项目时会出问题。这里我是先在码云上先创建了一个仓库,然后再将项目pull到本地。

 

 

 

 父工程目录:

 

 因为maven版本比较高,所以出现很多mvn文件。

修改pom文件:

<?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>

    <groupId>com.wlm</groupId>
    <artifactId>spring-cloud-alibaba</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring-cloud-alibaba</name>
    <description>spring-cloud-alibaba</description>

    <properties>
        <!--java版本-->
        <java.version>1.8</java.version>
        <!--springboot版本-->
        <spring.boot.version>2.3.12.RELEASE</spring.boot.version>
        <!--spring cloud alibaba版本-->
        <spring.cloud.alibaba>2.2.7.RELEASE</spring.cloud.alibaba>
        <!--spring cloud 版本-->
        <spring.cloud>Hoxton.SR12</spring.cloud>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
        <!--springboot 基本场景启动依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--springboot 测试类依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!-- 版本依赖管理器-->
    <dependencyManagement>
        <dependencies>
            <!-- SpringBoot 版本管理器 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- Spring Cloud Alibaba 版本管理器 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- Spring Cloud 版本管理器 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud}</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>
pom.xml

此时父工程就搭建完成了,很简单,整个项目是由maven进行管理的,依赖包是我们开发时用到的jar包,也就是框架,这里为什么什么也不选,框架结构为一个基座+多个子模块,我们上面建立的父工程就是基座,你可以把它当作一个工作空间用途是管理子模块。

 

 

 

 

 

 

 

 


  

 

 

posted @ 2022-04-06 22:00  泡代码的小二黑  阅读(204)  评论(0编辑  收藏  举报
script src="https://files.cnblogs.com/files/fenggwsx/clipboard.min.js"/script script src="https://files.cnblogs.com/files/fenggwsx/cp.js"/script