spring cloud
文章平均质量分 81
牛奋lch
我是一只快乐的程序猿……
展开
-
spring cloud-实现Eureka注册中心的HA
前言:在前面的例子中,我们的Eureka Server都是单节点的,一旦该节点在生产中挂掉,就无法再提供服务的注册,为了保证注册中心的高可用,在生产中一般采用多节点的服务注册中心。一、在hosts文件中加入如下配置127.0.0.1 peer1127.0.0.1 peer2二、修改application.yml配置文件---spring: profiles: peer1原创 2017-02-06 18:07:00 · 17487 阅读 · 9 评论 -
spring cloud-Feign使用中遇到的问题总结
问题一:在前面的示例中,我们讲过@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)@GetMapping("/user/{id}")这两个注解的效果是等价的,但是在Feign使用中,只能用上面的那种方式,不能直接用@GetMapping,下面我们将前面的那个示例中,改成@GetMapping注解看下效果,我们原创 2017-01-25 11:25:01 · 62699 阅读 · 4 评论 -
Hystrix系列-2-HystrixObservableCommand的使用
在前面一节中HystrixCommand的使用,下面,我们来介绍HystrixObservableCommand的使用。HystrixObservableCommand的作用仍然是用来做资源隔离的,后面会介绍和HystrixCommand的区别,先看用法,示例代码如下:/** * HystrixObservableCommand使用示例 * 只需要集成HystrixObservableCo原创 2017-06-25 14:46:24 · 6218 阅读 · 1 评论 -
Hystrix系列-3-Hystrix的配置-通过代码构造配置
一、首先我们来实现一个HystrixCommand,示例代码如下:package com.example.demo.hystrix.command;import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.cli原创 2017-06-25 15:40:39 · 2005 阅读 · 0 评论 -
Hystrix系列-4-Hystrix的动态配置
Hystrix默认使用Archaius来实现的动态配置,我们在上节中,使用了代码的方式来实现配置,这节,我们使用Hystrix的动态配置来实现。1、实现一个Command,代码如下:package com.example.demo.hystrix.command;import org.apache.http.HttpEntity;import org.apache.http.clie原创 2017-06-25 16:29:28 · 9179 阅读 · 7 评论 -
Hystrix系列-5-Hystrix的资源隔离策略
Hystrix的资源隔离策略有两种,分别为:线程池和信号量。说到资源隔离,那我们就要明白,我们为什么需要资源隔离。在一个分布式系统中,服务之间都是相互调用的,如下图所示:例如,我们容器(Tomcat)配置的线程个数为1000,服务A-服务R,其中服务I的并发量非常的大,需要500个线程来执行,此时,服务I又挂了,那么这500个线程很可能就夯死了,那么剩下的服务,总共可用的线程为50原创 2017-06-25 18:57:32 · 18575 阅读 · 9 评论 -
spring cloud-前端跨域问题的解决方案
当我们需要将spring boot以restful接口的方式对外提供服务的时候,如果此时架构是前后端分离的,那么就会涉及到跨域的问题,那怎么来解决跨域的问题了,一般是在spring boot的主类中,增加一个CorsFilter@Beanpublic CorsFilter corsFilter() { final UrlBasedCorsConfigurationSource so原创 2017-03-15 21:22:50 · 26500 阅读 · 10 评论 -
spring cloud config分布式配置中心的高可用
在前面的博客中,我们实现了配置文件统一管理的功能,但是我们可以发现,我们仅仅只用了一个server,如果当这个server挂掉的话,整个配置中心就会不可用,下面,我们就来解决配置中心的高可用问题。下面我们通过整合Eureka来实现配置中心的高可用,因为作为架构内的配置管理,本身其实也是可以看作架构中的一个微服务,我们可以把config server也注册为服务,这样所有客户端就能以服务的方式进原创 2017-03-06 09:13:59 · 11234 阅读 · 3 评论 -
spring cloud config实现datasource的热部署
关于spring cloud config的基本使用,前面的博客中已经说过了,如果不了解的话,请先看以前的博客spring cloud config整合gitlab搭建分布式的配置中心spring cloud config分布式配置中心的高可用今天,我们的重点是如何实现数据源的热部署。1、在客户端配置数据源@RefreshScope@Configuration//原创 2017-07-19 19:48:44 · 12322 阅读 · 9 评论 -
spring cloud-Swagger2整合Eureka,实现Eureka页面自动跳转到Swagger2UI界面查看服务接口信息
一、Eureka Server回顾在前面的博客中,细心的读者可能已经发现,当我们点击某个注册到Eureka Server上的某个服务的时候,链接的界面要么报404,要么就是空的,如下图所示:现在问题,我们已经知道了,怎么来解决了?解决思路就是整个Eureka和Swagger2,当点击链接的时候,直接跳转到Swagger2的UI界面,怎么做了?接着往下看。二、在服务配置中添加配置原创 2017-03-01 12:19:35 · 16469 阅读 · 2 评论 -
spring cloud-将spring boot服务注册到Eureka Server上
开篇:我们将前面的springboot整合H2内存数据库,实现单元测试与数据库无关性提供的Restful服务注册到spring cloud的Eureka Server上。一、引入Eureka的Client org.springframework.cloudspring-cloud-starter-eurekaorg.springframework.clo原创 2017-01-22 10:26:55 · 10749 阅读 · 0 评论 -
spring cloud-zuul的Filter详解
在前面我们使用zuul搭建了网关http://blog.csdn.net/liuchuanhong1/article/details/59056278关于网关的作用,这里就不再次赘述了,我们今天的重点是zuul的Filter。通过Filter,我们可以实现安全控制的,比如,只有请求参数中有用户名和密码的客户端才能访问服务端的资源。那么如果来实现Filter了?要想实现Filter,需要原创 2017-03-15 21:05:42 · 72485 阅读 · 35 评论 -
spring cloud config整合gitlab搭建分布式的配置中心
在前面的博客中,我们都是将配置文件放在各自的服务中,但是这样做有一个缺点,一旦配置修改了,那么我们就必须停机,然后修改配置文件后再进行上线,服务少的话,这样做还无可厚非,但是如果是成百上千的服务了,这个时候,就需要用到分布式的配置管理了。而spring cloud config正是用来解决这个问题而生的。下面就结合gitlab来实现分布式配置中心的搭建。spring cloud config配置中原创 2017-03-03 17:47:43 · 14679 阅读 · 1 评论 -
spring cloud-使用Hystrix实现单个方法的fallback
一、加入Hystrix依赖 org.springframework.cloud spring-cloud-starter-hystrix 二、编写Controllerpackage com.chhliu.springboot.restful.controller;import org.springframework.beans.factory.annotation.Au原创 2017-02-07 22:23:34 · 13268 阅读 · 1 评论 -
spring cloud-添加Hystrix Dashboard监控到系统中
前言该示例是在spring cloud-使用Hystrix实现单个方法的fallback示例的基础上改进一、添加依赖 org.springframework.cloud spring-cloud-starter-hystrix-dashboard 二、在启动类中添加Hystrix Dashboard支持@EnableHystrix@EnableHy原创 2017-02-07 22:39:11 · 15676 阅读 · 7 评论 -
spring cloud-整合Swagger2构建RESTful服务的APIs
前言在前面的博客中,我们将服务注册到了Eureka上,可以从Eureka的UI界面中,看到有哪些服务已经注册到了Eureka Server上,但是,如果我们想查看当前服务提供了哪些RESTful接口方法的话,就无从获取了,传统的方法是梳理一篇服务的接口文档来供开发人员之间来进行交流,这种情况下,很多时候,会造成文档和代码的不一致性,比如说代码改了,但是接口文档没有改等问题,而Swagger2则原创 2017-03-01 08:59:14 · 13310 阅读 · 6 评论 -
spring cloud-构建微服务架构的网关(API GateWay)
前言在我们前面的博客中讲到,当服务A需要调用服务B的时候,只需要从Eureka中获取B服务的注册实例,然后使用Feign来调用B的服务,使用Ribbon来实现负载均衡,但是,当我们同时向客户端暴漏多个服务的时候,客户端怎么调用我们暴漏的服务了,如果我们还想加入安全认证,权限控制,过滤器以及动态路由等特性了,那么就需要使用Zuul来实现API GateWay了,下面,我们先来看下Zuul怎么使用原创 2017-03-01 12:20:17 · 32848 阅读 · 1 评论 -
spring cloud中启动Eureka Server
一、新建工程二、工程结构三、修改配置文件# eureka.client.registerWithEureka :表示是否将自己注册到Eureka Server,默认为true。由于当前这个应用就是Eureka Server,故而设为false# eureka.client.fetchRegistry :表示是否从Eureka Server获取注册信息,默认为true。因为这是一个原创 2017-01-22 10:01:57 · 24384 阅读 · 11 评论 -
spring cloud-Feign的Hystrix支持
一、Feign client中加入Hystrix的fallback@FeignClient(name="springboot-h2", fallback=HystrixClientFallback.class) //在fallback属性中指定断路器的fallbackpublic interface UserFeignClient {// @GetMapping("/user/{id}")原创 2017-02-12 21:41:28 · 9782 阅读 · 10 评论 -
spring cloud中Ribbon自定义负载均衡策略
一、Ribbon中的负载均衡策略1、Ribbon中支持的负载均衡策略AvailabilityFilteringRule:过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server,并过滤掉那些高并发的的后端server(active connections 超过配置的阈值) | 使用一个AvailabilityPredicate来包含过滤server的逻辑原创 2017-01-23 15:19:58 · 25425 阅读 · 11 评论 -
spring cloud-使用feign来消费Restful服务同时加入Ribbon来实现负载均衡
前言在前面的示例中,我们消费spring boot提供的Restful服务的时候,使用的是RestTemplate来实现的,实现起来还是比较复杂的,尤其是在消费复杂的Restful服务的时候,还需要进行一系列的转换,编解码等,使用Feign就完全不用考虑这个问题了。一、Feign简介Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可原创 2017-01-25 09:57:28 · 17180 阅读 · 9 评论 -
spring cloud-给Eureka Server加上安全的用户认证
前言在前面的一篇文章中spring cloud中启动Eureka Server我们启动了Eureka Server,然后在浏览器中输入http://localhost:8761/后,直接回车,就进入了spring cloud的服务治理页面,这么做在生产环境是极不安全的,下面,我们就给Eureka Server加上安全的用户认证.一、添加spring-security支持 or原创 2017-01-25 14:29:08 · 23815 阅读 · 15 评论 -
spring cloud中使用Ribbon实现客户端的软负载均衡
开篇本例是在springboot整合H2内存数据库,实现单元测试与数据库无关性和使用RestTemplate消费spring boot的Restful服务两个示例的基础上改造而来在使用RestTemplate来消费spring boot的Restful服务示例中,我们提到,调用spring boot服务的时候,需要将服务的URL写死或者是写在配置文件原创 2017-01-23 10:37:09 · 44772 阅读 · 2 评论