SpringCloud简介
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
在理解这些之前,需要知道一个概念:微服务
微服务
微服务是一种架构风格,它的核心作用还是这两个字:解耦
传统的开发模式是指单体应用架构,当一个模块出现问题,很可能导致整个系统崩溃,而修改、新增某个功能,则需要对整个系统进行测试、重新部署。
而微服务则是分布式开发,将⼀个⼤型的项目架构拆分成若干个微服务来协同完成,微服务之间相互独立,这样就避免了上述问题。
而SpringCloud就是一个微服务框架,它包含了一系列组件Eureka、Ribbon、Fegin、Hystrix、Zuul等
Eureka
Eureka 是 Netflix 开发的,一个基于 REST 服务的,服务注册与发现的组件。它主要包括两个组件:Eureka Server 和 Eureka Client
Eureka Server:提供服务注册和发现的能力(通常就是微服务中的注册中心)
Eureka Client:一个Java客户端,用于简化与 Eureka Server 的交互
通常就是指微服务中的客户端和服务端
使用方法
- 创建一个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>
- 创建子模块。
右键父工程--new--Module
创建springboot项目,勾选springcloud中的Eureka server,或者在子模块的pom文件中添加以下依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
子模块的pom文件继承了父模块的pom文件,因此只需要添加子模块额外需要的依赖即可
- 子模块中创建application.yml
server:
port: 8761 #注册中心一般默认8761端口
eureka:
client:
register-with-eureka: false #是否注册自己?当然不注册啦
fetch-registry: false #是否同步注册数据?不同步
server-url: #设置访问地址
defaultZone: http://localhost:8761/eureka/
此时你的项目目录应该类似:
- 在EurekaserverApplication中添加
@EnableEurekaServer
注解,声明其是一个注册中心
@SpringBootApplication
@EnableEurekaServer
public class EurekaserverApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaserverApplication.class, args);
}
}
- 启动子模块,访问
http://localhost:8761
注意url后面没有eureka/
如果可以访问到类似以下画面,即成功
有错误请及时指出
参考文献
Q.E.D.