随笔分类 - 07 springCloud
摘要:1. 禁用过滤器 # zuul.<SimpleClassName>.<filterType>.disable=true # 例如禁用 自定义的过滤器 zuul.MyFilter.pre.disable=true 2. 路由的映射 方法1: zuul.routes.spring-cloud-provi
阅读全文
摘要:zuul不仅只是路由,还可以自定义过滤器来实现服务验证。 实现案例:自定义过滤器,检验头部是否带有token,如果token=wangx,则通过校验,若不存在或不为wangx则返回提示token错误。 扩展:一般情况下,可以采用JWT规范来做token的校验。 JWT:https://jwt.io/
阅读全文
摘要:1. Zuul的工作机制 Zuul提供了一个框架,可以对过滤器进行动态的加载,编译,运行。过滤器之间没有直接的相互通信,他们是通过一个RequestContext的静态类来进行数据传递的。RequetstContext类中的ThreadLocal变量来记录每个request所需要传递的数据。 它包含
阅读全文
摘要:1. 什么时候Zuul? Zuul是一个基于jvm路由和服务端的负载均衡器,在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。 路由功能:相当于nginx的反向代理 比如: / 可能需要映射到你的web应用,/api/users/映射到用户服务 ,/api/shop映射到商城服务。 2. 使
阅读全文
摘要:前言: 上一节中,我们使用Hystrix Dashboard,只能看到单个应用内的服务信息。在生产环境中,我们经常是集群状态,所以我们需要用到Turbine这一应用。 作用:汇总系统内的多个服务的数据并显示到Hystrix Dashboard上。 1. 新建Turbine项目 添加依赖,pom文件
阅读全文
摘要:1. 引入依赖 在前面几节中的消费者中添加pom依赖。 2. 在启动类上添加注解 添加@EnableHystrixDashboard 开启Dashboard。 3. 注册HystrixMetricsStreamServlet 在2.x之前的版本中,会自动注入该Servlet的,但是在2.x之后的版本
阅读全文
摘要:1. Hystrix对Feign的支持 添加Feign中IUserBiz的实现类HystrixFallBack: package com.wangx.cloud.springcloud02consumer.configure; import com.wangx.cloud.springcloud02
阅读全文
摘要:说明 : 1、Hystrix通过舱壁模式来隔离限制依赖的并发量和阻塞扩散 2、 Hystrix提供了两种隔离策略:线程池(THREAD)和信号量隔离SEMAPHORE)。 1. 线程池隔离(默认策略模式) 线程池隔离把执行依赖代码的线程与请求线程(如tomcat线程)分离,请求线程可以自由控制离开时
阅读全文
摘要:为什么会有断路器? 在微服务架构中,系 是拆分成 一个的服务单元各间通过注册与发现 的方式互相依 赖。每个单元都在不同的进程中运行, 都是通过远程调用的方式进行信 ,这样就有可能因为网络原或 是依赖服务自身问题出现调用延迟或者故障 而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不
阅读全文
摘要:工作流程(参考:https://github.com/Netflix/Hystrix/wiki/How-it-Works) 1、 创建一个HystrixCommand或HystrixObservableCommand实例 第一步就是构建一个HystrixCommand或HystrixObservab
阅读全文
摘要:1. Feign的默认配置 Feign 的默认配置 Spring Cloud Netflix 提供的默认实现类:FeignClientsConfiguration 解码器:Decoder feignDecoder: ResponseEntityDecoder (which wraps a Sprin
阅读全文
摘要:1. 什么是Feign? Feign是一种声明式、模板化的HTTP客户端,在SpringCloud中使用Feign。可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到是一个远程方法,更感知不到这是一个HTTP请求 Feign的灵感来自于Retrofit,JAXRS-
阅读全文
摘要:一、 内置 负载均衡策略的介绍的 IRule的实现类 2. 通过代码实现负载均衡 在第六节Riddom的使用的工程中,随机策略配置类 package com.wangx.cloud.springcloud02consumer.configure; import com.netflix.loadbal
阅读全文
摘要:1. 注解@LoadBalanced 作用:识别应用名称,并进行负载均衡。 2. 入口类:LoadBalancerAutoConfiguration 说明:类头上的注解可以知道Ribbon 实现的负载均衡自动化配置需要满足两个条件 1、 RestTemplate 类必须存在于当前工程的环境中 2、
阅读全文
摘要:1. Eureka服务认证 1. 引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> <scope>test</scop
阅读全文
摘要:1. 什么是负载均衡? 负载均衡,就是分发请求流量到不同的服务器。 负载均衡一般分为两种 1. 服务器端负载均衡(nginx) 2. 客户端负载均衡(Ribbon) 2. 服务提供者(spring-cloud-provider) 实体类User: Controller接口: 3. 服务消费者(spr
阅读全文
摘要:1. Eureka监控配置 Eureka的客户端需要加入依赖 而由于服务端本身已经依赖了该依赖,所以不需要再引入。 接下来就是一些配置信息的添加: 注意: 1. 服务监控依赖于spring-boot-starter-actuator这个jar 2. 注意management.context-path
阅读全文
摘要:1. Eureka服务端的启动过程 1.1 入口类EurekaServerInitializerConfiguration类, public void start() { (new Thread(new Runnable() { public void run() { try { EurekaSer
阅读全文
摘要:1. Spring Cloud Netflix Spring Cloud Netflix 是Spring Cloud 的核心子项目,是对Netflix公司一系列开源产品的封装。它为Spring Boot应用提供了自动配置的整合,只需要通过一些简单的注解,就可以快速的在Spring Cloud应用中使
阅读全文
摘要:1. 微服务是什么? 微服务是一种由多个服务组成的集合体,它属于一种软甲架构,在微服务中,它的每个服务都是独立存在的,微服务是一种去中心化的思想。 它具有开发简单,技术栈灵活,服务独立解耦,可用性高等特点,但是它也面临着维护和部署复杂度增加,服务间通信成本高,数据一致性的保证和系统集成测试等挑战 2
阅读全文