![](https://img-blog.csdnimg.cn/20210802161544585.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringCloud
文章平均质量分 75
SpringCloud
BasicLab基础架构实验室
本人深耕基础架构领域,曾在国内500强大厂研发企业级百亿量级吞吐中间件,擅长Java语言、Go语言、Python语言、C语言、NodeJS、Web、Linux、深度学习、大数据、云原生等
展开
-
SpringCloud Nacos 重写负载均衡与节点选择器(实现流量灰度关键)
方案1:是最容易想到的玩法。方案2:是个人目前最喜欢的方案。首先简单,并且都是复用Nacos/Ribbon现有的代码——而Ribbon/Nacos本身都是来自于大公司生产环境,经过严苛的生产考验。方案3:太暴力了,把Ribbon架空了。此方案中,扔给Ribbon做负载均衡选择时,List只有1个元素,不管用什么算法去算,最后总是会返回这个元素!原创 2022-11-28 15:05:40 · 568 阅读 · 0 评论 -
微服务监控的三大类
微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics。Logging - 用于记录离散的事件。例如,应用程序的调试信息或错误信息。它是我们诊断问题的依据。比如我们说的ELK就是基于Logging。 Metrics - 用于记录可聚合的数据。例如,队列的当前深度可被定义为一个度量值,在元素入队或出队时被更新;HTTP 请求个数可被定义为一个计数器,新请求到来时进行累。prometheus专注于Metrics领域。 Tracing - 用于记录请求范围内的信息。例如,一原创 2021-07-01 16:43:57 · 525 阅读 · 0 评论 -
SpringCloud实战(十四)-容器自动化集群部署(Kubernetes)
本文是SpringCloud实战(十四)-容器自动化集群部署(Kubernetes),若要关注前文,请点击传送门:SpringCloud实战(十三)-轻量级集群管理工具(Portainer)前文我们介绍了轻量级集群管理工具(Portainer)。之前我们已经讲过通过 Swarm 编排集群的方式,本文我们主要讲解如何以 Kubernetes 编排集群。一、Kubernetes简介 Kubernetes是Google开源的一款容器编排工具,它是诞生在Google内部运行N多年的博格系统之上的产物原创 2020-07-11 18:21:18 · 1082 阅读 · 0 评论 -
SpringCloud Feign 传输Date类型参数存在误差
最近在项目开发过程中,前端传递过来的时间(Date类型)在A模块是正确的,然后A模块调用B模块将时间(Date类型)作为参数传过去,然后B模块接收到的时间有误差,天数会多一天,小时少10小时,这应该是SpringCloud Feign组件造成的问题,我这里的解决办法是在A模块调用之前先将时间(Date类型)转为String类型,B模块接收到A模块的参数后将时间由String类型再转为Date类型就...原创 2020-02-09 12:41:14 · 1890 阅读 · 0 评论 -
SpringCloud 架构中关于分布式定时任务的解决方案
有时候我们在开发过程中,很容易犯这样一个错误,就是在服务中写一个定时任务,然后也没做其它的处理就上线了。然后微服务架构为了保证高可用,一般都会部署多个服务,这个时候问题就来了,时间一到定时任务一启动,发现你部署多少个服务,就会跑多少个定时任务。如果服务器性能一般,定时任务占用内存又多,服务器跑死都有可能。问题:那基于SpringCloud的架构中,这种情况我们应该如何处理呢?简单的来说,我...原创 2019-12-07 15:21:29 · 4041 阅读 · 11 评论 -
SpringCloud Fegin解决java.lang.IllegalArgumentException: Body parameter 0 was null
最近在工作中遇到了一个Fegin传参异常,特此记录便于日后查阅。java.lang.IllegalArgumentException: Body parameter 0 was null at feign.Util.checkArgument(Util.java:102) at feign.ReflectiveFeign$BuildEncodedTemplateFromArgs.reso...原创 2019-10-29 09:59:10 · 4786 阅读 · 0 评论 -
SpringCloud zuul获取请求参数的方法(包括分离普通参数与文件流)
zuul获取参数工具类,代码如下:package com.openailab.oascloud.gateway.util;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.parser.Feature;import com.google.common.collect.Maps;import com...原创 2019-10-21 16:43:01 · 3628 阅读 · 0 评论 -
SpringCloud通过Feign传递List类型参数
首先明确一点,SpringCloud通过Fegin如果是多个参数,其中一个参数是List,那么是传不过去的,单个List是可以的。1、单个List实体传递@RequestMapping("/secret/batchInsert")public int batchInsert(@RequestBody List<BatchSecretBO> batchSecretBOList...原创 2019-10-14 20:15:27 · 22523 阅读 · 5 评论 -
SpringCloud Zuul RequestContext.setSendZuulResponse的心得
原文地址:https://blog.csdn.net/zgyjk/article/details/81672830自从项目使用微服务以后,很多以前在业务端实现的功能,如限流,加密,身份认证等,就搬到了Zuul中,这之间也走了很多弯路,最近打算将使用过程中的一些心得体会慢慢写下来,沉淀一下ZuulFilter中的RequestContext.setSendZuulResponse这个方法在几...原创 2019-06-25 20:00:16 · 2807 阅读 · 5 评论 -
SpringCloud实战(九)-容器自动化部署与持续集成(Docker)
本文是SpringCloud实战(九)-Docker自动化部署与持续集成,若要关注前文,请点击传送门:SpringCloud实战(八)-断路器监控与集群监控(Hystrix Dashboard)前文我们介绍了Hystrix的集群监控。本文主要讲述SpringCloud构建镜像和远端部署。一、Docker自动化部署简介随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间...原创 2019-05-23 15:37:50 · 4147 阅读 · 0 评论 -
SpringCloud实战(十三)-轻量级集群管理工具(Portainer)
本文是SpringCloud实战(十三)-轻量级集群管理工具(Portainer),若要关注前文,请点击传送门:SpringCloud实战(十二)-自动化质量检测工具(SonarQube)前文我们介绍了Jenkins集成Sonar实现自动化质量检测。随着我们容器数量的日益增多,管理起来也慢慢地力不从心,这个时候我们可能需要一个工具来帮我们实现容器管理,如果你使用的是kubernetes,那...原创 2019-05-24 09:57:01 · 1604 阅读 · 0 评论 -
SpringCloud实战(二)-服务间调用(ribbon+restTemplate)
本文是SpringCloud实战(二)-服务间调用(ribbon+restTemplate),若要关注前文,请点击传送门:SpringCloud实战(一)-高可用的服务注册中心(Eureka)前文我们介绍了高可用Eureka集群搭建。在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbo...原创 2019-05-09 12:18:39 · 1223 阅读 · 0 评论 -
SpringCloud实战(三)-服务间调用(Feign)
本文是SpringCloud实战(三)-服务间调用(Feign),若要关注前文,请点击传送门:SpringCloud实战(二)-服务间调用(ribbon+restTemplate)前文我们基于ribbon+restTemplate实现了服务间调用,本文我们基于Feign来实现相同的效果,这两者其实没有什么区别,Feign也是基于ribbon来进行的负载均衡。一、Feign简介Fei...原创 2019-05-09 13:49:09 · 1681 阅读 · 0 评论 -
SpringCloud实战(四)-断路器(Hystrix)
本文是SpringCloud实战(四)-断路器(Hystrix),若要关注前文,请点击传送门:SpringCloud实战(三)-服务间调用(Feign)前文我们介绍了通过Feign实现服务间调用。在我们平常工作中有的时候难免会遇到服务不能提供相应或者发生宕机的情况存在,此时可能会造成线程close_wait的情况,造成CPU飙升100%,这种情况在SpringCloud中也给出了相应的微服...原创 2019-05-09 14:54:47 · 813 阅读 · 0 评论 -
SpringCloud实战(五)-路由网关(zuul)
本文是SpringCloud实战(五)-路由网关(zuul),若要关注前文,请点击传送门:SpringCloud实战(四)-断路器(Hystrix)前文我们介绍了Hystrix断路器。在平常工作中,我们有时候希望将客户端和服务端之间增加一层防火墙,让客户端访问服务端必须通过这道防火墙检测是安全访问之后才让请求通过,否则打回。SpringCloud提供了路由网关(zuul)来做这道防火墙,我...原创 2019-05-09 16:32:00 · 735 阅读 · 0 评论 -
SpringCloud实战(六)-高可用的分布式配置中心(Spring Cloud Config)
本文是SpringCloud实战(六)-高可用的分布式配置中心(Spring Cloud Config),若要关注前文,请点击传送门:SpringCloud实战(五)-路由网关(zuul)前文我们介绍了Zuul路由网关。随着工作中业务的日益增多,需求日益复杂,我们需要拆分许多微服务模块进行业务划分,此时每一个模块都有各自的配置文件,此时如果有1万个模块,我们就有1万个配置文件,所以我们需要...原创 2019-05-09 18:41:28 · 830 阅读 · 0 评论 -
SpringCloud实战(七)-服务链路追踪(Spring Cloud Sleuth)
本文是SpringCloud实战(七)-服务链路追踪(Spring Cloud Sleuth),若要关注前文,请点击传送门:SpringCloud实战(六)-高可用的分布式配置中心(Spring Cloud Config)前文我们介绍了分布式配置中心。本文主要讲述服务追踪组件zipkin,Spring Cloud Sleuth集成了zipkin组件。一、Sleuth简介Spring...原创 2019-05-09 19:23:11 · 708 阅读 · 0 评论 -
SpringCloud实战(八)-断路器监控与集群监控(Hystrix Dashboard)
本文是SpringCloud实战(八)-断路器监控(Hystrix Dashboard),若要关注前文,请点击传送门:SpringCloud实战(七)-服务链路追踪(Spring Cloud Sleuth)前文我们介绍了zipkin。本文主要讲述断路器监控Hystrix Dashboard。一、Hystrix Dashboard简介Hystrix Dashboard,它主要用来实时...原创 2019-05-09 20:04:00 · 795 阅读 · 0 评论 -
SpringCloud实战(十)-容器自动化集群部署(Swarm)
本文是SpringCloud实战(十)-容器自动化集群部署(Swarm),若要关注前文,请点击传送门:SpringCloud实战(九)-容器自动化部署与持续集成(Docker)前文我们介绍了容器自动化部署与持续集成。在我们成功搭建好了前文的容器自动化部署之后,不知道大家有没有考虑过,那如果我要部署集群怎么办?难道在Jenkins中对同一个工程新建多个实例,然后每个实例采用不同的配置文件吗?...原创 2019-05-23 20:22:44 · 1528 阅读 · 0 评论 -
SpringCloud实战(十一)-更优的分布式配置解决方案(Apollo)
本文是SpringCloud实战(十一)-更优的分布式配置解决方案(Apollo),若要关注前文,请点击传送门:SpringCloud实战(十)-容器自动化集群部署(Swarm)前文我们介绍了容器自动化集群部署。本文介绍携程的阿波罗,它相对于SpringCloud Config来说应该说是更优的一种配置中心解决方案,因为他自带了配置管理界面,用户无需将配置文件上传到GitLab上,同时它还...原创 2019-05-23 20:28:29 · 868 阅读 · 0 评论 -
SpringCloud实战(十二)-自动化质量检测工具(SonarQube)
本文是SpringCloud实战(十二)-自动化代码检测工具(SonarQube),若要关注前文,请点击传送门:SpringCloud实战(十一)-更优的分布式配置解决方案(Apollo)前文我们介绍了携程的Apollo配置中心。在我们的日常开发中,程序有BUG是一件很让人苦恼的事情,开发过程中定位BUG和解决问题都会占据我们很多的时间,市面上已经提供了一些代码检测工具来帮助我们完成这些事...原创 2019-05-23 20:33:40 · 2167 阅读 · 0 评论 -
SpringCloud实战(一)-高可用的服务注册中心(Eureka)
由于工作的原因,最近特意研究了一下SpringCloud相关微服务组件的实现原理,并将各个微服务组件进行了单机搭建和伪集群搭建,本专栏的SpringBoot版本是基于2.0.3版本,SpringCloud版本是Finchley版本。Finchley版本的官方文档如下:http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/si...原创 2019-05-09 11:19:58 · 1803 阅读 · 1 评论