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>
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>
Hystrix是容错管理组件,实现断路器功能,为服务中存在的延迟和故障提供更强大的容错能力,需要添加的依赖如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId
</dependency>
通过使用注解@HystrixCommand对接口进行熔断和降级处理。
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();
Zuul网关组件,提供智能路由、访问过滤等功能。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
zuul也需要单独起一个服务。并且zuul需要注册到Eureka,zuul的配置如下:
另外,使用SpringCloud的这些组件,需要在启动类中添加如下的配置:
@EnableDiscoveryClient
@EnableScheduling
@EnableCircuitBreaker
@SpringBootApplication
动力节点在线课程涵盖零基础入门,高级进阶,在职提升三大主力内容,覆盖Java从入门到就业提升的全体系学习内容。全部Java视频教程免费观看,相关学习资料免费下载!对于火爆技术,每周一定时更新!如果想了解更多相关技术,可以到动力节点在线免费观看SpringCloud入门视频教程哦!
代码小兵87208-09 15:04
代码小兵99203-29 17:29
杨晶珍08-02 11:09
代码小兵98808-09 14:38
代码小兵28608-09 14:50