SpringCloud简介

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

在理解这些之前,需要知道一个概念:微服务

微服务

微服务是一种架构风格,它的核心作用还是这两个字:解耦

u=3901419926,3115503703fm=26gp=0.jpg

传统的开发模式是指单体应用架构,当一个模块出现问题,很可能导致整个系统崩溃,而修改、新增某个功能,则需要对整个系统进行测试、重新部署。

而微服务则是分布式开发,将⼀个⼤型的项目架构拆分成若干个微服务来协同完成,微服务之间相互独立,这样就避免了上述问题。

而SpringCloud就是一个微服务框架,它包含了一系列组件Eureka、Ribbon、Fegin、Hystrix、Zuul等

Eureka

Eureka 是 Netflix 开发的,一个基于 REST 服务的,服务注册与发现的组件。它主要包括两个组件:Eureka Server 和 Eureka Client

Eureka Server:提供服务注册和发现的能力(通常就是微服务中的注册中心)

Eureka Client:一个Java客户端,用于简化与 Eureka Server 的交互

通常就是指微服务中的客户端和服务端

使用方法

  1. 创建一个springBoot项目。记得勾选springcloud组件,或pom中添加以下依赖

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <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>
  1. 创建子模块。右键父工程--new--Module创建springboot项目,勾选springcloud中的Eureka server,或者在子模块的pom文件中添加以下依赖
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

子模块的pom文件继承了父模块的pom文件,因此只需要添加子模块额外需要的依赖即可

  1. 子模块中创建application.yml
server:
  port: 8761			#注册中心一般默认8761端口
eureka:
  client:
    register-with-eureka: false  #是否注册自己?当然不注册啦
    fetch-registry: false       #是否同步注册数据?不同步
    server-url:			#设置访问地址
      defaultZone: http://localhost:8761/eureka/  

此时你的项目目录应该类似:

截屏20200405下午8.54.42.png

  1. 在EurekaserverApplication中添加@EnableEurekaServer注解,声明其是一个注册中心
@SpringBootApplication
@EnableEurekaServer
public class EurekaserverApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaserverApplication.class, args);
    }

}
  1. 启动子模块,访问 http://localhost:8761

注意url后面没有eureka/

如果可以访问到类似以下画面,即成功

截屏20200405下午9.00.05.png

有错误请及时指出

参考文献

通过业务场景描述SpringCloud五大组件的功能

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

To see the world as it is and to love it.