微服务理论+父工程基本pom

微服务理论+父工程基本pom

微服务架构概述

微服务是一种架构模式,他提倡单一应用程序划分成一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值,每个服务运行在独立的进程中,服务于服务之间采用轻量级的通信机制互相协作(通常是基于htto协议的restful API),每个服务都围绕着具体业务进行构建,请求能够独立的部署到生产环境,另外:应当尽量避免统一的,集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其构建

微服务需要具备的组件功能

  1. 服务注册与发现
  2. 服务调用
  3. 服务熔断
  4. 负载均衡
  5. 服务降级
  6. 服务消息队列
  7. 配置中心管理
  8. 服务网关
  9. 服务监控
  10. 全链路追踪
  11. 自动化构建部署
  12. 服务定时任务调度工作

什么是springcloud

分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶

springcloud和springboot版本对应

参考官网:https://spring.io/projects/spring-cloud

Table 1. Release train Spring Boot compatibility有对应的表格说明他们之间的版本对应关系

springcloud中文网

https://www.springcloud.cc/

父工程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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.lwp</groupId>
  <artifactId>mz-cloud</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <!-- 统一管理jar包版本 -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <junit.version>4.12</junit.version>
    <log4j.version>1.2.12</log4j.version>
    <lombok.version>1.18.20</lombok.version>
    <mysql.version>8.0.25</mysql.version>
    <druid.version>1.2.6</druid.version>
    <mybatisPlus.version>3.4.3.1</mybatisPlus.version>
  </properties>

  <!-- 子模块继承后,提供作用:锁定版本+子模块不需要写groupId和version -->
  <dependencyManagement>
    <dependencies>
      <!--SpringBoot 2.5.2-->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.5.2</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <!-- Spring Cloud 2020.0.3 -->
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>2020.0.3</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <!--  Spring Cloud alibaba -->
      <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        <version>2021.1</version>
        <type>pom</type>
        <!--  解决多继承  -->
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
      </dependency>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
      </dependency>
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>${druid.version}</version>
      </dependency>
      <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>${mybatisPlus.version}</version>
      </dependency>

    </dependencies>

  </dependencyManagement>


  <!--项目编译插件-->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>${java.version}</source>
          <target>${java.version}</target>
          <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
      </plugin>
    </plugins>
  </build>
  
  <repositories>
        <repository>
            <id>public</id>
            <name>aliyun nexus</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>public</id>
            <name>aliyun nexus</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>
posted @ 2021-08-04 23:50  幸运刘  阅读(320)  评论(0)    收藏  举报