
SpringCloud
失忆๑
想走的更远。。。。看更好的风景
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
微服务下的登录验证JWT的使用
一)微服务下的登录验证JWT的使用1)JWT(JSON WEN TOKEN)微服务下登录检验解决方案 JWT讲解简介:微服务下登录检验解决方案 JWT讲解 json wen token 1、JWT 是一个开放标准,它定义了一种用于简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法。 JWT 可以使用 HMAC 算法或者是 RSA 的公钥密钥对进行...原创 2019-09-24 12:00:54 · 368 阅读 · 0 评论 -
Zuul-在高并发情况下,网关实现限流达到自我保护
一)如何在高并发访问下对网关进行保护微服务开发中有时需要对API做限流保护,防止网络攻击,比如做一个短信验证码API,限制客户端的请求速率能在一定程度上抵御短信轰炸攻击,降低损失。1.创建项目2.pom文件在pom文件内添加对Zuul限流的坐标ratelimit的坐标<?xml version="1.0" encoding="UTF-8"?><project xml...原创 2019-09-07 20:12:44 · 1732 阅读 · 0 评论 -
Zuul-在网关中实现对服务的降级
一)Zuul网关服务降级处理1.项目创建2.pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch...原创 2019-09-07 20:10:58 · 527 阅读 · 1 评论 -
Zuul-error过滤器做统一异常处理
一)网关过滤器异常统一处理1.注意此异常处理和全局异常异常处理是不同的,Error过滤器只是针对Zuul在过滤请求的过程中如果出现异常,所有的过滤器都会去找有没有过滤类型为error的过滤器,并做异常的统一处理。2.在此强调,ERROR类型的过滤器是处理用户请求到达网关的时候,在过滤器中出现了异常二)测试Error类型过滤器1.创建异常类型的过滤器package com.sxt.filt...原创 2019-09-07 20:08:36 · 1065 阅读 · 0 评论 -
Zuul-使用过滤器模拟用户登录
一)模拟用户登录需求:在分布式项目中,用户登录是个问题,在以前的用户信息都是存在Session中,但是如果是集群的的话,集群较小的话还可以使用session复制进行解决的,如果集群的较大的话,那么大大的降低性能。所以我们再进行用户登录的时候是先将用户登录的信息以JSON的格式存储在,redis内,并返回一个的Token的Cookie到用户,用户在访问的项目中其他的服务的时候,携带当前的toke...原创 2019-09-07 20:04:49 · 302 阅读 · 1 评论 -
Zuul-自定义网关过滤器
一)自定义网关过滤器我们已经能够实现请求的路由功能,所以我们的微服务应用提供的接口就可以通过统一的 API 网关入口被客户端访问到了。但是,每个客户端用户请求微服务应用提供的接口时,它们的访问权限往往都需要有一定的限制,系统并不会将所有的微服务接口都对它们开放。然而,目前的服务路由并没有限制权限这样的功能,所有请求都会被毫无保留地转发到具体的应用并返回结果。为了实现对客户端请求的安全校验和权...原创 2019-09-07 20:02:05 · 293 阅读 · 0 评论 -
zuul-路由方式
一)zuul的路由规则Zuul的路由规则就是以什么样的方式去访问网关下的服务。zuul提供了4种访问网关下服务的规则1.采用URL2.采用服务名字3.路由排除法4.添加指定的前缀二)URL的路由方式1.创建项目pom文件需要基本的坐标1)web启动器2)EurekaClient3)Zuul<?xml version="1.0" encoding="UTF-8"?&...原创 2019-09-07 19:58:23 · 338 阅读 · 0 评论 -
zuul-什么是微服务中的网关
一)什么是微服务中的网关1.微服务中的zuulzuul是SpringCloud中的一个路由组件,我们可以使用的zuul对外提供一个统一的入口访问我们提供的Provider,看上去zuul很像Customer,但是不然,其实我们可以将zuul理解成一个的门户,它为是web应用所有服务请求的前门,用户的请求经过网关,在进行对服务的消费2.为什么需要网关第一:我们知道我们要进入一个服务本身,很明...原创 2019-09-07 19:53:43 · 227 阅读 · 0 评论 -
采用RabbitMQ收集数据监控-服务搭建
一)在使用Turbine出现的问题1.前面提到使用的Turbine进行数据监控的虽然能够解决的集群服务的监控的问题,但是的也存在问题,比如频繁的配置,我们需要在Turbine内配置需要监控的服务,这是非常不好的,假如有1000个服务呢?那配置起来就很繁琐了,而且配置的服务不易管理,增加了管理的难度。2.在实际的应用中我们并不采用turbine进行集群服务的监控,而是采用在服务和Turbine之...原创 2019-09-05 20:11:49 · 384 阅读 · 0 评论 -
Zuul-Zuul性能调优-网关的2层超时调优
一)Zuul超时调优为什么要对Zuul的超时时间进行优化根据上图进行解释Zuul底层使用的Hystrix调用Ribbon和服务进行通信的,默认情况下的使用的是Hystrix线程池隔离的方式将,网关内的服务开启一个线程访问远程的服务,这时,通过网管服务的请求需要经过Hystrix和Ribbon进行数据的请求线程池隔离默认的超时时间是一秒,ribbon是5秒,假如现在有个请求正常返回的数据的...原创 2019-09-07 20:15:31 · 794 阅读 · 0 评论 -
SpringCloud-config-配置文件的现状
一)为什么要使用配置中心简介:Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以为所有环境中的应用程序管理其外部属性。它非常适合spring应用,也可以使用在其他语言的应用上。随着应用程序通过从开发到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运行的一切。服务器存储后端的默认实现使用g...原创 2019-09-09 19:56:20 · 173 阅读 · 0 评论 -
SpringCloud-config-在Git端修改配置后,在不重启服务中如何让客户端生效
一)客户端刷新1.在客户端内添加坐标<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>2.使用HttpCl...原创 2019-09-09 19:58:40 · 2128 阅读 · 0 评论 -
elasticsearch-安装和ELK介绍
一)ELK介绍为什么用到ELK:一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。一般大型系统是一个分布式部署的架构,...原创 2019-09-11 21:16:29 · 212 阅读 · 0 评论 -
SpringCloud-Sleuth-Sleuth介绍及入门案例
一)Sleuth简介微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能需要调用很多个服务,而内部服务的调用复杂性,决定了问题难以定位。所以微服务架构中,必须实现分布式链路追踪,去跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见,出...原创 2019-09-11 21:01:41 · 447 阅读 · 1 评论 -
SpringCloud-stream-消息分区
一)分区的特点1.Stream的分区是当消息的提供者发送了相同的消息的时候,如果被集群的中的某个节点消费了那么如果提供者在此发送相同的消息的时候 ,一致会被同一个的消费者消费掉分区的配置提供者端需要配置的信息spring.application.name=12-springcloud-stream-group-sendserver.port=7070eureka.client.serv...原创 2019-09-11 20:49:24 · 397 阅读 · 0 评论 -
SpringCloud-stream-消息分组
一)实现消息的分组根据入门案例发现和消息中间件实现了耦合,可以自由切换消息中间件的类型,但是这还存在一个的问题,那就是对集群的支持,假如现在有个订单业务,当用户下完订单后要给用户的手机发送短信告知,由于短信服务压力过于大我们对其进行了集群的处理,但是此时如果使用Stream进行消息的推送,是将的对集群汇总所有的节点都进行通知,此时用户将要收到和集群数量想同的信息,这样肯定是不符合逻辑的。那么如何...原创 2019-09-11 20:48:12 · 253 阅读 · 0 评论 -
SpringCloud-stream-入门案例
一)创建Stream使用的入门案例编写提供者1.创建项目2.pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...原创 2019-09-11 20:43:46 · 229 阅读 · 0 评论 -
SpringCloud-bus- Bus-Server动态刷新配置文件
一)刷新Server端实现配置文件的动态读取1)服务端和客户端的要求1.都要连接上的RabbitMQ2.配置bus-amqp坐标Server端刷新的流程图如下2.Server端配置1.创建项目2.pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org...原创 2019-09-10 20:40:30 · 446 阅读 · 0 评论 -
SpringCloud-bus-什么是Spring Cloud Bus-Client动态刷新配置文件
一)什么是SpringCloudBusSpring云总线使用轻量级消息代理链接分布式系统的节点。然后可以用它广播状态更改(例如配置更改)或其他管理指令。目前唯一的实现是使用AMQP代理作为传输,但是相同的基本功能集(以及更多依赖于传输的功能)取决于其他传输的路线图。SpringCloudBus集成了市面上大部分的消息代理主要解决的问题就是数据同步、数据的变更二)使用Bus配置文件的更新...原创 2019-09-10 20:33:41 · 320 阅读 · 0 评论 -
SpringCloud-config-在配置中心服务端开启对称加密
一)对称加密1.在GIT仓库进行配置的时候,很多的数据是比较敏感的,不能以明文的方式进行存储,所以需要使用加密进行保护一些比较敏感的信息2.所有的加密是在ConfigServer端进行的。3.对称加密介绍 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的 是同样的密钥(secret key)。二)使用对称加密1.创建项目2.在全局...原创 2019-09-09 20:04:23 · 195 阅读 · 0 评论 -
Hystrix-Turbine-集群监控
一)集群监控Turbine 是聚合服务器发送事件流数据的一个工具,hystrix 的 监控中,只能监控单个节点,实际生产中都为集群,因此可以通过 t urbine 来监控集群服务。使用集群监控服务的时候被监控的服务需要有Dashboard的坐标1.修改Customer添加Dashboard<!-- 使用可视化界面需要添加的坐标--> <de...原创 2019-09-04 21:54:15 · 254 阅读 · 0 评论 -
Hystrix-Dashboard-可视化监控中心
一)在项目中使用Dashboard(仪表盘)Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。,说白了。就是通过配置Hystrix Dashboard,我们可以通过浏览页面看运行情况1.在项目中加入坐标1)Hystrix2)actutor3)dashboard2.pom文件<?xml version="1.0" encoding="...原创 2019-09-04 21:47:07 · 1150 阅读 · 0 评论 -
Hystrix-feign-降级的异常日志
一)使用的Fegin进行服务的调用异常日志处理1.修改ProductCustomerServiceFallback,将接口实现换为FallBackFactory接口的实现2.在create方法内对ProductCustomerService接口内的数据做托底数据/** * @project_name:springcloud * @date:2019/9/4:14:22 * @autho...原创 2019-09-04 21:44:21 · 575 阅读 · 0 评论 -
Feign-在微服务的日志中记录每个接口URL,状态码和耗时信息
一)查看Customer到Provider的数据包的方式1.使用的是Logback输出日志包的进行查看添加logback的配置文件并且日志的级别必须为DEBUG<?xml version="1.0" encoding="UTF-8" ?> <configuration><!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> ...原创 2019-09-03 20:40:11 · 1947 阅读 · 1 评论 -
Feign-编写支持Http连接案例
一)替换Customer到Provider之间的连接工具为HttpClient1.HttpURLConnection和HttpClient的区别1)HttpClient在进行传递对象类型的时候要指定传递的参数的是JSON格式而HttpURLConnection则不需要。2)HttpClient支持GET方式的对象传递,HttpURLConnection不支持GET方式请求参数的传递。3)H...原创 2019-09-03 20:38:35 · 224 阅读 · 0 评论 -
Feign-Gzip介绍及Http协议中的传输规则
一)GZIP的压缩文件的介绍1 gzip 介绍gzip 介绍:gzip 是一种数据格式,采用用 deflate 算法压缩 data;gzip 是一种流行的文件 压缩算法,应用十分广泛,尤其是在 Linux 平台。gzip 能力:当 Gzip 压缩到一个纯文本文件时,效果是非常明显的,大约可以减少 70% 以上的文件大小。gzip 作用:网络数据经过压缩后实际上降低了网络传输的字节数,最明显...原创 2019-09-02 21:29:57 · 534 阅读 · 0 评论 -
Feign-Feign参数请求
一)单个参数的传递1.在服务项目内添加一个的参数的方法注意使用Fegin进行参数的传递的时候接口内的参数必须被@RequestParam注解指定参数的名称/** * @param * @description: 使用参数传递的时候必须要使用@RequestParam注解指定传递的参数的名称 * @eturn: a * @author: shinelon * @time: 2019...原创 2019-09-02 21:27:17 · 667 阅读 · 0 评论 -
Feign-Feign的介绍和入门使用
一)Feign技术1.Fegin介绍eign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。在Spring Cloud中,使用Feign非常简单——创建一个接口,并在接口上添加一些注解,代码就完成了。Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。Spring Cloud对Feign进行了增强,使Fe...原创 2019-09-02 21:23:46 · 741 阅读 · 0 评论 -
Ribbon-Rbbon的介绍
一)Ribbon的介绍1 什么是 Ribbon1.Ribbon是一个基于 Http 和 TCP 的客服端负载均衡工具,它是基于 Netflix Ribbon 实 现的。2.它不像 spring cloud 服务注册中心、配置中心、API 网关那样独立部署,但是它几乎 存在于每个 spring cloud 微服务中。包括 feign 提供的声明式服务调用也是基于该 Ribbon 实现的。3...原创 2019-09-02 21:13:46 · 395 阅读 · 0 评论 -
SpringCloud-介绍及和Dubbo的区别
Spring Cloud 的子项目Spring Cloud 包含了很多子项目,如:3.1Spring Cloud Config:配置管理工具,支持使用 Git 存储配置内容,支持应 用配置的外部化存储,支持客户端配置信息刷新、加解密配置内容等3.2 Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中 传播状态变化,可与 Spring Cloud Confi...原创 2019-08-28 20:29:32 · 230 阅读 · 0 评论 -
SpringCloud-开发原则
一)开发原则一)AKF拆分原则业界对于可扩展的系统架构设计有一个朴素的理念,就是: 通过加机器就可以解决容量和可用性问题。(如果一台不行那就两台)。有这么一个段子:(世界上没有什么事是一顿烧烤不能解决的。如果有,那就两 顿。) 这一理念在“云计算”概念疯狂流行的今天,得到了广泛的认可!对于一个规模 迅速增长的系统而言,容量和性能问题当然是首当其冲的。但是随着时间的向前, 系统规模的增长,除了...原创 2019-08-27 21:48:03 · 422 阅读 · 0 评论 -
Fegin-配置请求时间和响应时间
一)演示超时异常请求此url的时候让其睡眠6秒@Overridepublic List<Product> findAllProduct(){ try { Thread.sleep(6000); } catch (InterruptedException e) { e.printStackTrace(); }...原创 2019-09-03 20:42:50 · 644 阅读 · 0 评论 -
微服务开发的雪崩效应
一)什么是雪崩效应其实雪崩很好理解,雪崩就是一个点的触发灾难引起大规模的灾难伤害。那么微服务中的雪崩效应也是如此,在微服务中服务和服务之间的依赖关系是非常的多的,如果其中的一个服务出现问题,那么与之关联的服务或者依赖此服务的其他服务因为此服务的宕机,挤压大量请求无法给用户进行数据的反馈,而引起一系列服务的出现问题。如图1:下图是一个的服务依赖流程图,当请求少量的时候,系统能够正常的运行。其中...原创 2019-09-03 20:44:31 · 561 阅读 · 0 评论 -
Ribbon-使用Ribbon实现Customer和Provider之间的连接如何使用降级解决雪崩效应
一)在Ribbon解决Customer和Provider连接的时解决雪崩效应1.什么是降级举个例子,比如吃鸡的游戏,里面有一级包,二级包,三级包不同的包容量不同装的东西也不同,假如你现在落地的了地上一地的装备,但是你只有一个的一级包那么你是不是选择你认为重要的东西带走其他的就是不要了。其实降级处理雪崩就是这个的道理,降级是针对服务的降级,就是当你的整体服务资源快不够时候,我们必须忍痛将一些服...原创 2019-09-03 20:48:48 · 282 阅读 · 0 评论 -
Hystrix-feign-进行服务降级处理
一)项目的创建1.创建项目测试feign下的降级处理2.pom文件注意还没添加Hystrix的依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins...原创 2019-09-04 21:42:56 · 462 阅读 · 0 评论 -
Hystrix-隔离-线程隔离和信号隔离的区别
1、线程池隔离技术与信号量隔离技术的区别hystrix里面,核心的一项功能,其实就是所谓的资源隔离,要解决的最最核心的问题,就是将多个依赖服务的调用分别隔离到各自自己的资源池内。避免说对某一个依赖服务的调用,因为依赖服务的接口调用的延迟或者失败,导致服务所有的线程资源全部耗费在这个服务的接口调用上。一旦说某个服务的线程资源全部耗尽的话,可能就导致服务就会崩溃,甚至说这种故障会不断蔓延hys...原创 2019-09-04 21:39:36 · 600 阅读 · 0 评论 -
Hystrix-隔离-信号量隔离
一)信号量隔离介绍什么是信号量隔离?信号量隔离的其实很简单,就是在Constumer和Provider之间加上一个的消息队列,在指定的时间内只允许指定的请求量能够访问到Provider,如果请求超出,则返回托底数据。如下图:Constumer访问的Provider之间的请求量是的10万次,那么么此时的Porvider肯定是接收不了的,如果使用的信号量隔离,就是在两者之间加上一个的消息队列,...原创 2019-09-04 21:38:44 · 1405 阅读 · 0 评论 -
Hystrix-隔离-线程隔离
一)线程隔离什么是线程隔离,如下图Customer通过线程池,访问服务接口,接口A面对的10次的请求量,接口B是10次的访问量,比例是1:10000,此时接口A和接口B的连接是在同一个的线程池中,如果接口A因为的访问量过大的原因出现问题,势必影响线程池的效率,而线程池中的其他线程也会受到影响,从而造成雪崩效应。那么我们该怎么解决线程池内独立线程在运行的运行的时候不会影响到的其他的线程呢?那就...原创 2019-09-04 21:36:05 · 772 阅读 · 0 评论 -
Hystrix熔断器技术解析-HystrixCircuitBreaker
Hystrix熔断器技术解析-HystrixCircuitBreaker - 简书标签: | 发表时间:2017-12-14 09:57 | 作者:出处:http://www.jianshu.com一、熔断器(Circuit Breaker)介绍熔断器,现实生活中有一个很好的类比,就是家庭电路中都会安装一个保险盒,当电流过大的时候保险盒里面的保险丝会自动断掉,来保护家里的各种电器及电路。H...转载 2019-09-04 21:28:57 · 339 阅读 · 0 评论 -
Hystrix-熔断机制
一)熔断机制熔断机制的流程图1.当服务正常请求的时候不会触发熔断器的执行2.如果当服务的请求失败几率大于50%的时候则会自动熔断机制,并且开启循环请求。3.极润熔断机制触发fallback方法,返回托底数据4.如果请求依然失败依然是熔断开启,返回托底数据,并继续发起5秒的访问,成功则关闭熔断机制1.创建项目20-hystrix-open测试熔断机制2.pom文件<?xm...原创 2019-09-03 21:00:27 · 624 阅读 · 0 评论