Spring Cloud微服务架构学习-1

目录

    • 一、开发环境配置
    • 二、Spring Cloud概述
    • 三、创建项目
      • 1、创建父级目录
        • 1.1、创建项目
        • 1.2、删除src
        • 1.3、修改pom.xml
      • 2、创建第一个服务
        • 2.1、在父级上新建一个模块
        • 2.2、修改当前模块pom.xml
        • 2.3、创建启动类
        • 2.4、编写资源文件
        • 2.5、创建服务接口
        • 2.6、启动程序
    • 四、总结

一、开发环境配置

开发环境:IDEA2021+ JDK1.8+maven
1.JDK1.8的下载与安装
2.IDEA配置和maven
这里没有IDEA的下载与安装
(注意:这里环境的配置一定要小心注意细节,尤其是Maven,否则容易引起后续项目创建报错)

二、Spring Cloud概述

Spring Cloud是一个基于Spring Boot实现的微服务开发架构,它利用Spring Boot的开发便利性巧妙地简化了分布式系统的开发。例如配置管理、服务发现、断路器、智能路由、控制总线等操作,都可以使用Spring Boot开发风格做到一键启动和部署。可以说,Spring Cloud将Spring Boot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Cloud是一系列框架的有序集合,为开发人员构建微服务架构提供了完整的解决方案,它利用Spring Boot开发的便利性巧妙地简化了分布式系统基础设施的开发,如服务注册发现、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

Spring Cloud微服务架构的常用组件及模块

(1)Spring Cloud Netflix(核心模块)
•  Eureka:服务注册中心,基于REST服务的分布式中间件,主要用于服务管理。
•  Hystrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
•  Ribbon:云端负载均衡,支持多种负载均衡策略,可以配合服务发现和断路器使用,在客户端实现负载均衡。
•  Feign:一个REST客户端,基于Ribbon和Hystrix的声明式服务调用组件。
•  Zuul:服务网关,为微服务集群提供代理,过滤,路由等功能。

(2)Spring Cloud Config
配置管理工具包,负责把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。

(3)Spring Cloud Bus
事件、消息总线,用于在集群(例如配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。

(4) Spring Cloud Sleuth
服务追踪框架,可以与Zipkin、Apache Htrace和ELK等数据分析,服务跟踪系统进行整合,为服务跟踪、解决问题提供了便利。

Spring Cloud微服务架构图
Spring Cloud微服务架构学习-1_第1张图片

三、创建项目

1、创建父级目录

1.1、创建项目

Spring Cloud微服务架构学习-1_第2张图片
通过Maven工具创建,记得JDK版本选择我们安装的1.8
Spring Cloud微服务架构学习-1_第3张图片
我这里因为是要交的作业,统一命名项目坐标

Spring Cloud微服务架构学习-1_第4张图片

1.2、删除src

因为我们是创建父级项目,所以把src进行删除。
Spring Cloud微服务架构学习-1_第5张图片

1.3、修改pom.xml

作为父级项目,需要增加的pom.xml有四项:
以下是父级pom.xml参考


<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.0modelVersion>

    <groupId>ptu.com.microservicegroupId>
    <artifactId>ptu201912900704artifactId>
    <packaging>pompackaging>
    <version>1.0-SNAPSHOTversion>

    
    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.5.8version>
        <relativePath/> 
    parent>
    
    <properties>
        <java.version>1.8java.version>
        <spring-cloud.version>2020.0.5spring-cloud.version>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
    properties>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloudgroupId>
                <artifactId>spring-cloud-dependenciesartifactId>
                <version>${spring-cloud.version}version>
                <type>pomtype>
                <scope>importscope>
            dependency>
        dependencies>
    dependencyManagement>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-resources-pluginartifactId>
                <version>3.1.0version>
            plugin>
        plugins>
    build>

project>

2、创建第一个服务

2.1、在父级上新建一个模块

Spring Cloud微服务架构学习-1_第6张图片
使用Maven构建项目
Spring Cloud微服务架构学习-1_第7张图片
为了结构清晰便于后期回顾,模块的命名方式统一为:“lesson+编号-模块名称”
Spring Cloud微服务架构学习-1_第8张图片

2.2、修改当前模块pom.xml

切换到pom.xml,注意是当前模块的pom文件,不要切换到父级的pom文件。
Spring Cloud微服务架构学习-1_第9张图片
在当前模块pom中添加spring boot web依赖

 <dependencies>

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>
    dependencies>

2.3、创建启动类

在java路径下创建一个主程序的包,包名可以自己指定。
Spring Cloud微服务架构学习-1_第10张图片
Spring Cloud微服务架构学习-1_第11张图片
在刚才创建的包下面创建一个启动类,类名可以任意取,建议是xxxApplication格式。
在这里插入图片描述
Spring Cloud微服务架构学习-1_第12张图片
在类中填写如下代码则创建一个spring boot启动类:

Spring Cloud微服务架构学习-1_第13张图片

2.4、编写资源文件

在资源目录下创建一个application.yml文件

Spring Cloud微服务架构学习-1_第14张图片

在这里插入图片描述
在application.yml下添加配置
Spring Cloud微服务架构学习-1_第15张图片

2.5、创建服务接口

在firstService包下创建一个Controller包
Spring Cloud微服务架构学习-1_第16张图片
在这里插入图片描述
第一个程序的接口是返回个人信息,因此在Controller包下创建一个获取信息的类

Spring Cloud微服务架构学习-1_第17张图片
Spring Cloud微服务架构学习-1_第18张图片
在类中填写如下代码
Spring Cloud微服务架构学习-1_第19张图片

2.6、启动程序

Spring Cloud微服务架构学习-1_第20张图片
运行成功后打开浏览器,在地址栏输入127.0.0.1:8181/info
Spring Cloud微服务架构学习-1_第21张图片
出现此页面即表示成功!

四、总结

1. 在firstService下创建conrtoller包命名时如果删除了firstService.会一直变成同级的,要留着firstService. 直接在其后进行命名。
2. 在idea中操作失误可进行如下:
①ctrl+z;
②进入history恢复
3. 把鼠标移至要引入的后面,按住alt+enter->import*
4. 分布式和集群的区别:
分布式:做同一件事情所需要的不同服务
集群:几个服务做同一件事情

(此文章参考老师的实验指导,为方便后续学习回顾,写的时候加上了一些自己的理解,有什么错误的地方欢迎大家指出,一起进步~)

你可能感兴趣的:(Spring,Cloud,架构,spring,cloud,微服务)