springcloud框架怎么搭建
1、SpringCloud旨在构建一套标准化的微服务解决方案,提供了非常多的组件供用户选择。SpringCloud是在SpringBoot的基础上实现的开发工具,提供配置服务治理的微服务注册中心、网关、断路器等功能。在springcloud框架搭建过程中我们需要在父pom中引入spring-boot-starter-parent和spring-cloud-dependencies用来控制引入的springboot和spring cloud的版本号。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2、SpringCloud的服务治理组件Eureka,包含服务注册中心、服务注册与发现机制。Eureka组件既有服务端也有客户端,服务端需要单独另起一个服务,需要添加的依赖是:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
Eureka客户端的依赖是:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
3、Hystrix是容错管理组件,实现断路器功能,为服务中存在的延迟和故障提供更强大的容错能力,需要添加的依赖如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId
</dependency>
通过使用注解@HystrixCommand对接口进行熔断和降级处理。
4、Ribbon是客户端负载均衡的服务调用组件,Feign是基于Ribbon和Hystrix的声明式服务调用组件。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
Ribbon实现负载均衡需要如下的Bean的配置:
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
5、Zuul网关组件,提供智能路由、访问过滤等功能。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
zuul也需要单独起一个服务。并且zuul需要注册到Eureka,zuul的配置如下:
6、另外,使用SpringCloud的这些组件,需要在启动类中添加如下的配置:
@EnableDiscoveryClient
@EnableScheduling
@EnableCircuitBreaker
@SpringBootApplication