1.MicroService架构
SOA:面向服务的架构
微服务架构就是一种架构模式,将一个单体项目拆分为多个微服务,每个微服务可以独立技术选型,独立开发,独立部署,独立运维.并且多个服务相互协调,相互配合.
2.Springcloud
Springcloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的。
Springcloud其实就是一系列框架的有序集合,利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发
3.Springcloud有五大神兽
1.服务发现,注册 :Netflix Eureka
2.服务负载均衡 :Netflix Ribbon/Feign
3.断路器 : Netflix Hystrix
4.服务网关 : Netflix Zuul
5.分布式配置 : Netflix Config
4.使用Eureka
Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移
有了服务发现和注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务
4.1Eureka的三大角色
- Eureka server提供服务注册和发现,各个服务提供者节点启动后,会在Eureka Server中进行注册
- Service Provider服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到
- Service Consumer服务消费方从Eureka获取注册服务列表,从而能够消费服务
4.2单机注册中心搭建
创建一个普通maven项目
4.2.1在父模块spingcloud-parent中引入依赖
限定springboot版本
限定springcloud版本
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
<springboot.version>2.0.5.RELEASE</springboot.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>
<dependency>
<groupId>o