Spring Cloud Feign对Hystrix断路器的配置 - Spring Cloud

前面分别讲过了 “Spring Cloud Feign 声明式REST客户端” 和 “Spring Cloud Hystrix 断路器”,其实在Feign中已经集成了对Hystrix的配置。 基于之前的Feign工程,做如下改造: application.yml添加配置: feign: hystrix: enabled: true 修改Feign client import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @FeignClient(value = "${provider.hostname}", fallback = HelloClient.HelloClie...
阅读全文

Spring Cloud Hystrix 断路器 - Spring Cloud

Hystrix是一个断路器(circuit breaker)。在微服务体系中,通常会有多层的链式的服务调用,如果在调用链中某个环节故障,会导致该请求阻塞,进而导致调用链级联故障,最终影响整个微服务体系的使用,即“雪崩效应”。为了解决这个问题,Netflix推出了Hystrix,当请求某个服务发生故障的频率达到一个阈值时(Hystrix默认是5秒钟内20次故障),会自动断路并返回自定义的静态数据。 如何使用Spring Cloud Hystrix? 在pom.xml加入spring-cloud-starter-hystrix依赖。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> 修改启动类,加上注解@EnableCircuitBreaker。 import com.netflix.hystrix.con...
阅读全文

Spring Cloud Zuul:服务网关之路由服务 - Spring Cloud

路由是微服务架构中不可或缺的一部分。Zuul是由Netflix开源的,提供了基于JVM的路由服务和服务端侧负载均衡服务。(官方文档:https://cloud.spring.io/spring-cloud-static/Edgware.RELEASE/single/spring-cloud.html#_router_and_filter_zuul) 1. 如何使用Spring Cloud Zuul? 1.1 pom.xml加入spring-cloud-starter-zuul依赖。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> </dependency> 1.2 application.yml加入zuul配置 假设现在已有一个用户服务:http://localhost:8081/user/list。 zuul: routes: user...
阅读全文

Spring Cloud Feign 声明式REST客户端 - Spring Cloud

Feign是一个声明式Web服务客户端,使得调用Rest服务更简单。使用Feign只需要写一个接口加上一些注解就可以。下面主要介绍如何和Eureka一起使用。 1、假设我们已经启动了Eureka server(http://localhost:8671) 和 服务提供者(提供了Rest服务:http://localhost:8888/hello/{name}),并且服务提供者已经在Eureka server上注册。 2、新建spring boot工程,加入Feign和Eureka客户端依赖。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> ...
阅读全文

Spring Cloud Ribbon 客户端侧负载均衡器 - Spring Cloud

Ribbon是一个客户端侧负载均衡器(Client Side Load Balancer)。每个Ribbon客户端都会从服务注册中心(Eureka)获取服务清单并缓存在客户端,同时通过心跳机制去维护服务清单,然后执行负载均衡策略去调用不同服务器上的服务,谓之客户端侧负载均衡,因为这个负载均衡是发生在客户端侧的,而服务端侧负载均衡,例如Nginx,负载均衡是发生在服务端的,客户端发起请求,Nginx负责维护服务清单,并执行负载均衡策略。 Ribbon用Eureka作为注册中心,ribbon需要作为Eureka client注册在Eureka server上。 添加Ribbon和Eureka客户端依赖。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency> <dependency> <groupId...
阅读全文

Spring Cloud Eureka Server 高可用集群配置 - Spring Cloud

Eureka server是没有后端存储的,注册表中的服务实例通过发送心跳包来保持更新(因此可以在内存中完成)。 1、独立模式的配置(application.yml) server: port: 8761 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 2、集群部署模式(application.yml) 如果要做集群部署,只需要定义不同的配置文件,通过运行不同配置文件的实例,让各个server之间互相注册。 --- server: port: 8761 spring: profiles: peer1 eureka: instance: hostname: localhost client: ...
阅读全文

Spring Cloud Config/Eureka 构建分布式配置中心 - Spring Cloud

前文提到了“Spring cloud config”和“Eureka”的使用。此时只需要针对config server和config client做一些改造,通过Eureka来实现集群服务。 1、改造Config Server,将其注册在Eureka server上。pom.xml加入依赖eureka client依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> 修改application.yml,设置应用名并指定注册中心。 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ spring: application: name: config-server 在Spring boot启...
阅读全文

Spring Cloud Eureka 入门 - Spring Cloud

Eureka 是一个提供服务注册与发现的组件(官方文档地址: https://springcloud.cc/spring-cloud-dalston.html#spring-cloud-eureka-server)。 1、Eureka server 提供服务注册与发现服务 创建Spring boot web应用,pom.xml添加Eureka server依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </depend...
阅读全文

Spring Cloud Config 入门 - Spring Cloud

什么是Spring cloud config? 官方文档地址: http://projects.spring.io/spring-cloud/spring-cloud.html#_spring_cloud_config 1、Spring cloud config repo 创建git仓库,用于集中存放配置文件,地址为:https://github.com/spring-cloud-samples/config-repo.git 创建配置文件:foo-development.properties,内容为: bar: config foo: from foo development 2、Spring cloud config server 创建一个Spring boot应用,pom.xml添加依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId>...
阅读全文

MySQL中FIND_IN_SET()函数

语法: FIND_IN_SET(str,strlist)。 返回字符串在字符串列表中的位置(从1开始),字符串列表以英文逗号“,”分割,如果第一个参数是字符串常量,第二个是SET类型的列,FIND_IN_SET()方法会使用位运算优化。如果str在strlist中未找到,或者strlist为空,该方法返回0,如果任何一个参数是NULL,则返回NULL。如果第一个参数包含英文逗号“,”,那么该方法不会正确的执行。 文档地址:http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_find-in-set Returns a value in the range of 1 to N if the string str is in the string list strlist consisting of N substrings. A string list is a string composed of substrings separated by “,” characters. If the first argum...
阅读全文