![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring cloud
xiao_jun_0820
要自己每天都开心,不要烦恼
忘掉压力,天天好心情
展开
-
使用feign作为客户端来消费服务,提供负载均衡和断路器支持
pom文件如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/m原创 2017-09-13 15:05:15 · 1745 阅读 · 0 评论 -
通过HystrixCollapser合并请求提高应用吞吐量
我们知道elasticsearch可以通过指定index和doc id来获取某个doc的,也支持mget的方式,发送一次请求,将多个doc id发送过去查询出相应的docs。这样做可以有效的减少发往ES的请求数,降低ES的负载。在web应用层通过HystrixCollapser合并单个get请求为mget请求的处理方式,就能大大提升系统的TPS.以下为代码示例://利用hy原创 2017-11-02 14:03:14 · 5321 阅读 · 3 评论 -
为feign client增加请求重试机制
spring cloud通过feign client进行服务之间调用的时候,默认不会进行重试,这样会有一个问题,比如你的服务在滚动升级重启的时候,feign的调用将直接失败,但其实我是滚动重启,重启了一个服务实例,还有另外一个服务实例是可用的,应该允许自动均衡策略重试请求发送到另外一个可用的服务实例上去。要启用重试机制,首先必须引入spring-retry依赖: <depend...原创 2018-02-08 18:14:43 · 5808 阅读 · 2 评论 -
spring cloud zuul网关服务重试请求配置和源码分析
我们一般部署服务的时候,都会部署一个网关服务,内部所有的其他微服务的调用,都将通过网关路由过去,不对外直接暴露,对外只暴露网关服务。而且一般内部服务会部署多个实例,zuul集成了ribbon,会自动负载均衡的方式去调用内部服务。当内部服务滚动重启的时候,通过网关的一个请求刚好路由到重启的那个实例的话,因为默认没有开启zuul的请求重试策略,该请求将会报错,其实理想的方式可以通过重试路由到另外一个活...原创 2018-02-13 12:06:02 · 8226 阅读 · 0 评论 -
Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失
http://www.spring4all.com/article/948在Spring Cloud中我们用Hystrix来实现断路器,Zuul中默认是用信号量(Hystrix默认是线程)来进行隔离的,我们可以通过配置使用线程方式隔离。在使用线程隔离的时候,有个问题是必须要解决的,那就是在某些业务场景下通过ThreadLocal来在线程里传递数据,用信号量是没问题的,从请求进来,但后续的流程都是通...转载 2018-03-27 09:26:53 · 1965 阅读 · 2 评论 -
从源码中理解spring cloud kafka stream 是如何分配kafka的partitions给不同的instance的
首先,kafka的topic是由多个partitions物理分隔的。假设topic: testIn,有8个partitions其次,我们编写的springcloud kafka stream程序,打成jar包后,可以部署多个不同的实例instances,假设部署了3个instance。那么这3个instance是怎么分配这8个partitions的呢?在spring.cloud.stream.ka...原创 2018-05-02 15:09:31 · 5057 阅读 · 1 评论 -
通过一个springcloud stream kafka metrics的BUG的解决来了解kafka binder的初始化流程。
首先,从官方文档上摘录了两段文档说明:34. Metrics EmitterSpring Cloud Stream provides a module called spring-cloud-stream-metrics that can be used to emit any available metric from Spring Boot metrics endpoint to a name...原创 2018-05-04 16:15:49 · 4902 阅读 · 0 评论 -
Spring Cloud Netflix Eureka - The Hidden Manual
https://blog.asarkar.org/technical/netflix-eureka/Spring Cloud Netflix Eureka - The Hidden Manual 10 minute readIntroductionIn 2015-2016, we redesigned a monolithic application into Microservi...转载 2018-08-24 15:56:14 · 430 阅读 · 0 评论 -
Spring Cloud中,Eureka常见问题总结
转自http://www.itmuch.com/spring-cloud-sum-eureka/Spring Cloud中,Eureka常见问题总结。指定Eureka的Environment 1 eureka.environment: 指定环境 参考文档:https://github.com/Netflix/eur...转载 2018-08-24 17:12:58 · 416 阅读 · 0 评论 -
springcloud 和apollo配置中心一起使用时踩到的一个坑
场景描述:今天收到线上一个服务的instance deregistered的告警邮件,在springboot admin上确实那个instance不在线了。于是去服务器上jps看了一下,进程正常的,但是/health端点信息显示eureka为down。查看error.log,并没有错误日志,查看warn.log,发现里面有些许的警告日志如下:[2018-09-20T19:12:24.159...原创 2018-09-23 18:06:39 · 11420 阅读 · 6 评论 -
spring cloud stream kafka 动态写入不同的topic(Using dynamically bound destinations)
引入依赖: org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-web原创 2017-11-01 14:30:30 · 7155 阅读 · 1 评论 -
spring cloud stream配置多个kafka binders
实际工作中可能在一个工程里面同时连接多个不同的kafka集群读写数据,spring cloud stream也提供了类似的配置方式,首先给出一个demo配置:spring: cloud: stream: #指定用kafka stream来作为默认消息中间件# default-binder: kafka# kafka:# #来自Ka原创 2017-10-31 10:31:17 · 19060 阅读 · 3 评论 -
springboot应用管理工具Spring Boot Admin Reference Guide
Spring Boot Admin Reference GuideJohannes Edmeier@joshisteVersion 1.5.4,24.08.2017Table of Contents1. What is Spring Boot Admin?2. Getting started2.1. Setting up Spring Boot转载 2017-09-13 16:51:32 · 3066 阅读 · 0 评论 -
springboot admin 监控hystrix
spring cloud提供了hystrix dashbord用来监控hystrix,但是既然springboot admin提供了单个应用的那么多好用的管理功能和监控,那么就整合在一起方便管理和查看吧。springboot admin提供了spring-boot-admin-server-ui-hystrix用来整合hystrix。动手试一试基本项目结构如下图:p原创 2017-09-14 18:15:16 · 9643 阅读 · 8 评论 -
改变eureka server中注册的服务的健康检测方式
默认情况下注册到eureka server的服务是通过心跳来告知自己是UP还是DOWN,并不是通过spring-boot-actuator模块的/health端点来实现的,这样其实不是很合理。默认的心跳实现方式可以有效的检查eureka客户端进程是否正常运作,但是无法保证客户端应用能够正常提供服务。由于大多数微服务应用都会有一些其他的外部资源依赖,比如数据库,REDIS缓存等,如果我们的应用与原创 2017-09-15 15:36:54 · 22865 阅读 · 2 评论 -
使用kafka作为springcloud bus的消息总线,以及如何自定义总线事件
springcloud bus默认只支持rabbitmq和kafka两个binder,当然也是可以自己写binder扩展,本文主要介绍使用kafka 作为binder来提供消息总线服务,最新稳定版的Dalston.SR3默认使用的是kafka 0.10.1.1版本,如果你的kafka集群不是这个版本的话,需要整理一下依赖(排除原来的依赖,添加新的kafka相关依赖,官方文档有详细说明),不过也只支原创 2017-09-27 18:13:41 · 22843 阅读 · 2 评论 -
spring cloud eureka server HA
pom文件:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven原创 2017-09-12 10:32:55 · 469 阅读 · 0 评论 -
将服务提供者和服务消费者注册到eureka server
服务提供者pom文件:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/原创 2017-09-12 14:50:23 · 1240 阅读 · 0 评论 -
spring cloud config server使用svn来作为外部配置中心
默认情况下config server是使用git来作为配置中心的,由于还是有许多公司还是用svn来作为版本管理工具,幸好config server服务也支持svn配置,下面就来试验一下服务端配置:新建一个config-server项目,pom文件:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://原创 2017-09-20 10:11:53 · 16426 阅读 · 3 评论 -
关于springcloud kafka binder的一个关于consumer group设置的一个bug
我们可以通过spring.cloud.stream.kafka.bindings.springCloudBusInput.consumer.group来指定默认总线topic:spingCloudBus的consumer group,比如设置成${spring.application.name}:${spring.application.index},这样我们在kafka manager界面上可以原创 2017-09-29 13:34:27 · 3473 阅读 · 0 评论 -
feignclient设置hystrix参数
序feign默认集成了hystrix,那么问题来了,如何像hystrix command那样设置每个方法的hystrix属性呢。实例@FeignClient("product")public interface RemoteProductService { @RequestMapping(method = RequestMethod.GET,value = "/produc转载 2017-10-08 13:37:02 · 4234 阅读 · 3 评论