springCould
文章平均质量分 63
springCould
NPException
学无止境
展开
-
sentinel-dashboard安装
下载:下载地址:https://github.com/alibaba/Sentinel/releases有些网络下载会很慢,这里给出备用下载地址,备用下载地址:https://pan.baidu.com/s/1vZ5so4VwwP2c9IIWeInIFA下载控制台工程,使用以下命令将代码打包成一个 fat jar:mvn clean package启动:java -Ds...原创 2019-11-02 12:14:45 · 8734 阅读 · 6 评论 -
springcloud之Feign、ribbon设置超时时间和重试机制
前言我们在微服务调用服务的时候,会使用feign和ribbon,比如有一个实例发生了故障而该情况还没有被服务治理机制及时的发现和摘除,这时候客户端访问该节点的时候自然会失败。所以,为了构建更为健壮的应用系统,我们希望当请求失败的时候能够有一定策略的重试机制,而不是直接返回失败。先看一个配置:#预加载配置,默认为懒加载ribbon: eager-load: enabled...原创 2019-10-30 12:20:39 · 3133 阅读 · 0 评论 -
Spring Cloud Hystrix Command属性详解
前言我们在使用springcloud的时候难免会使用Hystrix ,下面对属性配置做一个笔记;配置主要有下面几种类型的属性配置:配置前缀为 hystrix.command.defaultexecution配置: execution.isolation.strategy :该属性用来设置执行的隔离策略,有如下二个选项: THREAD:通过线程池隔离的策略,在独立线程上...原创 2019-10-30 11:38:48 · 1159 阅读 · 0 评论 -
Ribbon的饥饿加载(eager-load)模式及服务调用超时配置
前言今天在使用微服务调用时服务之间调用超时,报错如下:feign.RetryableException: Read timed out executing POST http://******也可能会有人在服务都成功启动的时候第一次访问会有报错的情况发生,但是之后又恢复正常访问。解决办法:首先第一次调用失败后面正常:要解决此问题那么让需要实例化的类提前创建,而不是在第一次调用...原创 2019-10-30 10:32:38 · 2646 阅读 · 1 评论 -
Springcloud 使用Nacos作为配置中心
前言Nacos除了可以作为服务注册中心,它还有服务配置中心的功能。类似于consul config,Nacos 是支持热加载的。本篇文章将讲述如何使用Nacos作为配置中心。第一步:新建项目,添加依赖compile group: 'com.alibaba.cloud', name: 'spring-cloud-alibaba-nacos-config', version: '2.1....原创 2019-10-19 14:12:26 · 1203 阅读 · 0 评论 -
SpringCloud使用Nacos的服务注册与发现
前言在了解Nacos的服务注册与发现前,我们先看看Nacos官方的架构图:我们现在开始参考官方例子(nacos-spring-cloud-discovery-example),尝试将服务注册到Nacos。如果还没安装nacos的可以参考我上一篇文章https://blog.csdn.net/qq_36850813/article/details/102635786server端...原创 2019-10-19 13:02:01 · 984 阅读 · 0 评论 -
Nacos安装与启动
前言Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计,Nacos基本上支持现在所有类型的服务,例如,Dubbo / gRPC服务,Spring Cloud RESTFul服务或Kubernetes服务。尤其是使用Eureka注册中心的,并且担心Eureka闭源的开发者们,可以将注册中心修改为Nacos。下载地址:https://github.com/...原创 2019-10-19 10:47:19 · 13975 阅读 · 1 评论 -
Spring Cloud Gateway 过滤器工厂之AddRequestHeader
前言Spring Cloud Gateway的路由过滤器允许以某种方式修改传入的HTTP请求或输出的HTTP响应。只作用于特定的路由。Spring Cloud Gateway中内置了很多的过滤器工厂。通过目前的文档,我看到了内置的数量为20个,今天我们来学习第一个过滤器工厂AddRequestHeader GatewayFilter Factory。通过名称我们可以快速的明白这个过滤器工厂的作...原创 2019-10-15 12:45:58 · 2525 阅读 · 0 评论 -
spring cloud eureka 常见的参数配置(持续更新)
1.表示eureka client间隔多久去拉取服务注册信息,默认为30秒,对于api-gateway,如果要迅速获取服务注册状态,可以缩小该值,比如5秒eureka.client.registry-fetch-interval-seconds2.leaseExpirationDurationInSeconds,表示eureka server至上一次收到client的心跳之后,等待下一...原创 2019-10-12 09:24:23 · 449 阅读 · 0 评论 -
记一次SpringCloud gateway跨域所踩的坑
首先看一下单体项目配置的跨域:这里使用全局配置,也可使用注解的方式。package com.syj.mp.config;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;i...原创 2019-09-12 17:44:00 · 4164 阅读 · 1 评论 -
Spring Cloud组件那么多超时设置,我们如何理解和运用?
前言Spring Cloud作为微服务解决方案 全家桶,集合了丰富的微服务组件,如Gateway、Feign、Hystrix,Ribbon、OkHttp、Eureka等等。而作为服务调用环节涉及到的几个组件:Feign、Hystrix,Ribbon、OkHttp都有超时时间的设置,Spring Cloud 是如何优雅地把它们协调好呢?Spring Cloud 在接口调用上,大致会经过如...转载 2019-09-03 16:39:38 · 1481 阅读 · 0 评论 -
Spring Cloud 服务链路追踪(sleuth+zipkin)
前言sleuth主要功能是在分布式系统中提供追踪解决方案,并且兼容支持了zipkin(提供了链路追踪的可视化功能)zipkin原理:在服务调用的请求和响应中加入ID,表明上下游请求的关系。利用这些信息,可以可视化地分析服务调用链路和服务间的依赖关系。sleuth是对zipkin的封装,对应Span,Trace等信息的生成、接入http request,以及向Zipkin server发...原创 2019-08-16 13:24:07 · 528 阅读 · 0 评论 -
Spring Clound搭建zipkin服务跟踪出现Error creating bean with name ‘armeriaServer’错误
1.Error creating bean with name ‘armeriaServer’该问题可能是依赖冲突。检查下你的包,试着注销 zipkin autoconfigure,因为springboot实际是自带 spring boot autoconfigure的。dependencies { compile 'org.springframework.boot:spring-...原创 2019-08-16 11:41:01 · 3398 阅读 · 1 评论 -
Spring Cloud Gateway 过滤器之GlobalGilter和GatewayFilter初识
1、简介GlobalGilter 全局过滤器接口与 GatewayFilter 网关过滤器接口具有相同的方法定义。全局过滤器是一系列特殊的过滤器,会根据条件应用到所有路由中。网关过滤器是更细粒度的过滤器,作用于指定的路由中。查看GlobalGilter 的类图如下:包括路由转发、负载均衡、ws 路由、netty 路由等全局过滤器,如需详细了解每个类需要自行百度。Glob...原创 2019-08-15 14:08:26 · 540 阅读 · 0 评论 -
spring cloud gateway限流 漏桶算法和令牌桶算法初识
前言在高并发的应用中,限流是一个绕不开的话题。限流可以保障我们的 API 服务对所有用户的可用性,也可以防止网络攻击。限流算法令牌桶是一种限速算法,与之相对的是漏桶。常用的平滑的限流算法有两种:漏桶算法和令牌桶算法:漏桶算法漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接...原创 2019-08-15 13:15:16 · 3621 阅读 · 5 评论 -
spring cloud gateway 报错 cannot be cast to org.springframework.core.io.buffer.NettyDataBufferFactory
今天用从zuul网关换到spring cloud gateway网关,配置好项目后访问报错如下:java.lang.ClassCastException: org.springframework.core.io.buffer.DefaultDataBufferFactory cannot be cast to org.springframework.core.io.buffer.NettyDa...原创 2019-08-14 14:54:12 · 9535 阅读 · 2 评论 -
Spring Cloud Zuul 请求过滤
我们可以利用网关来实现一个简单的权限验证,这里就涉及到了Spring Cloud Zuul中的另外一个核心功能:请求过滤。请求过滤有点类似于Java中Filter过滤器,先将所有的请求拦截下来,然后根据现场情况做出不同的处理,这里我们就来看看Zuul中的过滤器要如何使用。很简单,两个步骤:1.定义过滤器首先我们定义一个过滤器继承自ZuulFilter,如下:package com.z...原创 2019-08-14 13:26:41 · 506 阅读 · 0 评论 -
Spring Cloud Zuul 中路由配置详解
首先我们平时写zuul路由可能会这样写zuul: ignored-services: '*' routes: test1: path: /test1/** serviceId: zebra-test test2: path: /test2/** serviceId: zebra-test当我的访问地址符合/test1...原创 2019-08-14 11:48:33 · 1226 阅读 · 0 评论 -
spring cloud gateway源码解析
1.gateway 和zuul对比1.zuul是基于servlet 2.5,兼容servlet3.0,使用的是阻塞API,不支持长连接如websocket2.Gateway基于spring5,Reactor和Spring boot2使用了非阻塞API,支持websocket,和spring完美集成,对开发者友好。3.zuul2支持非阻塞API,但没有和spring cloud集成,且已...原创 2019-08-14 09:30:40 · 1231 阅读 · 0 评论 -
Swagger2在header中添加token(java)
我用到的swagger 主要有三款产品,swagger editor,swagger ui 和swagger codegen。swagger editor:主要是一个本地客户端,用来自己添加api,自己来测试,相当于一个api的可视化测试工具和定义工具吧。swagger ui:主要用户嵌入到项目中,将所有的接口生成一个可视化的页面,方便前后端联调swagger codegen:主...原创 2019-06-11 15:30:06 · 8770 阅读 · 3 评论 -
如何Spring Cloud Zuul作为网关的分布式系统中整合Swagger文档在同一个页面上
如果你的系统也是用zuul作为分布式系统的网关,同时使用swagger生成文档,想把整个系统的文档整合在同一个页面上,可以参考本文。实现方法zuul-gatewayzuul: routes: payment-server: path: /pay/** order-server: path: /order/**swagger配置类Swag...原创 2019-06-11 13:38:04 · 325 阅读 · 0 评论 -
Spring Cloud Config分布式配置中心的简单使用
首先 官网地址:http://cloud.spring.io/spring-cloud-config/配置中心服务端添加gradle依赖:dependencies { implementation 'org.springframework.cloud:spring-cloud-config-server'}Application启动类添加注解添加@EnableCo...原创 2019-06-01 11:07:26 · 294 阅读 · 0 评论 -
Method has too many Body parameters的处理办法
今天用SpringCloud Feign报错:Method has too many Body parameters,解决如下:1.1GET方式错误写法: @RequestMapping(value="/test", method=RequestMethod.GET) public String test(Long id, Long type); 异常原因:当使用Fe...原创 2019-05-30 12:45:32 · 5829 阅读 · 0 评论 -
Spring Cloud 学习(33) --- APM(三) Pinpoint
Pinpoint 是韩国人编写的 APM 系统,是一个分析大规模分布式系统的平台,并提供处理大量跟踪数据的解决方案。Pinpoint特点分布式事务追踪,跟踪跨分布式应用的消息 自动检测应用拓展 水平扩展,以便支持大规模服务器集群 提供代码级了践行,便于定位失败点和瓶颈 提供字节码增强技术,添加新功能无需修改代码优势非侵入式:使用字节码增强技术,添加新功能无需修改代码 资...转载 2019-05-27 14:54:27 · 1089 阅读 · 0 评论 -
Spring Cloud 学习(32) --- APM(二) SkyWalking
SkyWalking 是有个完整的 APM 系统,被用于追踪、监控、诊断分布式系统。SkyWalking 整体由 4 个部分组成:collector、agent、web、storage。应用级别的接入,可以使用 SDK 形式接入,也可以使用非侵入式的 Agent 形式接入。agent 将数据转化为 SkyWalking Trace 数据协议,通过 HTTP、gRPC 发送到 collecto...转载 2019-05-27 14:54:16 · 1728 阅读 · 0 评论 -
Spring Cloud 学习(30) --- Spring Cloud Config(五) 高可用
对于线上的生产环境,通常对其都是有很高的要求,其中,高可用是不可或缺的一部分。必须保证服务是可用的,才能保证系统更好的运行,这是业务稳定的保证。高可用一般分为两种:客户端高可用、服务端高可用客户端高可用源码:https://gitee.com/laiyy0728/spring-cloud/tree/master/spring-cloud-config/spring-cloud-confi...转载 2019-05-26 18:28:55 · 366 阅读 · 0 评论 -
Spring Cloud 学习(29) --- Spring Cloud Config(四) Spring Cloud 配置、高可用
本地参数覆盖远程参数spring: cloud: config: allow-override: true override-none: true override-system-properties: falseallow-override:标识 override-system-properties 是否启用,默认为 true,设置为 ...转载 2019-05-26 18:28:47 · 1297 阅读 · 0 评论 -
Spring Cloud 学习(28) --- Spring Cloud Config(三) git 版 coofnig 配置、使用数据库实现配置中心
除了使用 git 作为配置文件的管理中心外,也可以使用关系型数据库、非关系型数据库实现配置中心,以及配置中心的扩展。包括:客户端自动刷新、客户端回退、安全认证、客户端高可用、服务端高可用等。服务端 git 配置详解git 的版 config 有多种配置:uri 占位符 模式匹配 多残酷 路径搜索占位符源码:https://gitee.com/laiyy0728/spring-c...转载 2019-05-26 18:28:38 · 522 阅读 · 0 评论 -
Spring Cloud 学习(27) --- Spring Cloud Config(二) 刷新配置
刷新配置信息的方式有三种:手动刷新、半自动刷新、自动刷新,其中,半自动刷新利用的是 spring cloud bus,自动刷新利用的是 github、gitee、gitlab 等代码托管网站的 webhooks手动刷新源码:https://gitee.com/laiyy0728/spring-cloud/tree/master/spring-cloud-config/spring-clou...转载 2019-05-26 18:28:30 · 712 阅读 · 0 评论 -
Spring Cloud 学习(26) --- Spring Cloud Config(一) 配置中心、实例
Spring Cloud Config 是 Spring Cloud 微服务体系中的配置中心,是微服务中不可或缺的一部分,其能够很好的将程序中配置日益增多的各种功能的开关、参数的配置、服务器的地址等配置修改后实时生效、灰度发布,分环境、分集群管理配置等进行全面的集中化管理,有利于系统的配置管理、维护。Spring Cloud Config 配置中心配置中心对比对比方面 重要性 ...转载 2019-05-26 18:28:20 · 444 阅读 · 0 评论 -
Spring Cloud 学习(25) --- Zuul(七) Zuul 优化、Zuul 工作原理
Zuul 作为一个网关中间件,需要应付各种复杂场景,整合的组件非常繁杂。在受益于其丰富的功能时,也需要面对很多问题。如:与上层负载均衡器(Nginx等)、性能、调优等。Zuul 应用优化Zuul 是建立在 Servlet 上的同步阻塞架构,所有在处理逻辑上面是和线程密不可分,每一次请求都需要在线程池获取一个线程来维护 I/O 操作,路由转发的时候又需要从 http 客户端获取线程来维持连接...转载 2019-05-26 18:28:11 · 1010 阅读 · 0 评论 -
Spring Cloud 学习(24) --- Zuul(六) Zuul 文件上传、使用技巧
之前在 https://www.laiyy.top/java/2019/01-24/spring-cloud-10.html 介绍了使用 Feign 做文件上传的操作,使用 Zuul 做文件上传,实际上是在 feign 调用之外增加了一层 zuul 路由。Zuul 文件上传源码:https://gitee.com/laiyy0728/spring-cloud/tree/master/spr...转载 2019-05-26 18:28:03 · 1068 阅读 · 0 评论 -
Spring Cloud 学习(23) --- Zuul(五) 动态路由、灰度发布
在了解了动态路由的改造原理、方式后,就可以自实现一个小 demo。可以使用 mysql 作为持久化方式,目的是方面、易于管理。动态路由实战源码:https://gitee.com/laiyy0728/spring-cloud/tree/master/spring-cloud-zuul/spring-cloud-dynamic-route-zuul-serverZuul Server...转载 2019-05-26 18:27:48 · 936 阅读 · 0 评论 -
Spring Cloud 学习(22) --- Zuul(四) 限流、动态路由概念
之前利用 Hystrix,通过熔断器实现了通过某个阈值来对异常流量进行降级处理。除了对异常流量进行降级之外,还可以通过 流量排队、限流、分流等操作,防止系统出错。限流算法限流算法一般分为 漏桶、令牌桶 两种。漏桶漏桶的圆形是一个底部有漏孔的桶,桶的上方有一个入水口,水不断流进桶内,桶下方的漏孔会以一个相对恒定的速度漏水,在入大于出的情况下,桶在一段时间内就会被装满,这时候多余的水就...转载 2019-05-26 18:27:38 · 871 阅读 · 1 评论 -
Spring Cloud 学习(20) --- Zuul(二) Zuul Filter 链
Zuul 的核心逻辑是由一系列紧密配合工作的 Filter 来实现的,能够在进行 HTTP 请求或响应的时候执行相关操作。Zuul FilterZuul Filter 的特点Filter 类型:Filter 类型决定了当前的 Filter 在整个 Filter 链中的执行顺序。 Filter 执行顺序:同一种类型的 Filter 通过 filterOrder() 来设置执行顺序 F...转载 2019-05-26 18:27:22 · 1350 阅读 · 0 评论 -
Spring Cloud 学习(19) --- Zuul(一) 基本概念、配置
Zuul 是由 Netflix 孵化的一个致力于“网关”的解决方案的开源组件。Zuul 在动态路由、监控、弹性、服务治理、安全等方面有着举足轻重的作用。Zuul 底层为 Servlet,本质组件是一系列 Filter 构成的责任链。Zuul 具备的功能认证、鉴权 压力控制 金丝雀测试(灰度发布) 动态路由 负载削减 静态响应处理 主动流量控制Zuul 入门案例Zuul ...转载 2019-05-24 10:46:42 · 373 阅读 · 0 评论 -
Spring Cloud 学习(18) --- Actuator(二) 运行时度量
运行时度量端点,包括: /metrics、/trace、/threaddump、/health 等运行时度量端点metrics 端点访问结果metrics 端点主要用于在项目运行中,查看计数器、度量器等,如:当前可用内存、空闲内存等访问:http://localhost:8080/actuator/metrics ,可用查看所有的计数器、度量器名称, 访问 http://loc...转载 2019-05-24 10:46:34 · 888 阅读 · 0 评论 -
Spring Cloud 学习(17) --- Actuator(一) 常见端点、配置明细端点
在 Hystrix Dashboard 中,使用了 /actuator/hystrix.stream,查看正在运行的项目的运行状态。 其中 /actuator 代表 SpringBoot 中的 Actuator 模块。该模版提供了很多生产级别的特性,如:监控、度量应用。Actuator 的特性可以通过众多的 REST 端点,远程 shell、JMX 获得。源码:https://gitee.co...转载 2019-05-24 10:46:25 · 2753 阅读 · 0 评论 -
Spring Cloud 学习(16) ---Hystrix(五) Hystrix 优化-2
Hystrix Collapser 是 Hystrix 退出的针对多个请求,调用单个后端依赖的一种优化和节约网络开销的方法。在一般情况下,每个请求会开启一个线程,并开启一个对服务调用的网络连接,而 Collapser 可以将多个请求的线程合并起来,只需要一个线程和一个网络开销来调用服务,大大减少了并发和请求执行所需的线程数和网络连接,尤其是在一个时间段内非常多的请求情况下,能极大提高资源利用率。...转载 2019-05-24 10:46:14 · 472 阅读 · 0 评论 -
Spring Cloud 学习(15) --- Hystrix(四) Hystrix 优化 -1
Hystrix 的优化可以从线程、请求缓存、线程传递与并发、命令注解、Collapser 请求合并 等方面入手优化Hystrix 线程调整线程的调整主要依赖于在生产环境中的实际情况与服务器配置进行相对应的调整,由于生产环境不可能完全一致,所以没有一个具体的值。请求缓存Hystrix 请求缓存是 Hystrix 在同一个上下文请求中缓存请求结果,与传统缓存有区别。Hystrix 的请...转载 2019-05-24 10:46:02 · 321 阅读 · 0 评论