- 浏览: 11548 次
- 性别:
- 来自: 北京
最新评论
文章列表
这次先来分享《并发编程和源码分析》方面的内容,欢迎品鉴!吹牛的话就不说了,做技术的人,要低调的强大!
谈并发编程,必谈AQS,要想透彻理解AQS,必然要深入理解AQS的原理、流程,然后细细研读它的源码,没 ...
CC最新分享——《并发编程之透彻理解AQS源码分析》,这绝对是我见过的、讲并发编程、讲AQS讲的最好的视频了,没有之一,千万不要错过!是不是吹牛,听过就知道,欢迎围观!CC,20年Java开发和使用经验,多年的首席架构师和CTO,畅销原创书籍《研磨设计模式》的作者。参与和领导了上百个大中型项目的设计和开发,在互联网应用系统架构、系统设计、应用级框架和中间件开发等方面具有很多经验和领悟。更为难得的是,入行20年,仍然奋战在技术一线,深知一线架构师需要掌握哪些技术、掌握到什么程度、一线架构设计会遇到哪些坑、如何才能做出最合适的架构设计,经验最难得!在这个公众号架构设计一起学里面,CC将会毫无保 ...
CC最新分享——《并发编程之透彻理解AQS源码分析》,这绝对是我见过的、讲并发编程、讲AQS讲的最好的视频了,没有之一,千万不要错过!是不是吹牛,听过就知道,欢迎围观!CC,20年Java开发和使用经验,多年的首席架构师和CTO,畅销原创书籍《研磨设计模式》的作者。参与和领导了上百个大中型项目的设计和开发,在互联网应用系统架构、系统设计、应用级框架和中间件开发等方面具有很多经验和领悟。更为难得的是,入行20年,仍然奋战在技术一线,深知一线架构师需要掌握哪些技术、掌握到什么程度、一线架构设计会遇到哪些坑、如何才能做出最合适的架构设计,经验最难得!这次先来分享《并发编程和源码分析》方面的内容,欢迎 ...
CC最新分享——《并发编程之透彻理解AQS源码分析》,这绝对是我见过的、讲并发编程、讲AQS讲的最好的视频了,没有之一,千万不要错过!是不是吹牛,听过就知道,欢迎围观!CC,20年Java开发和使用经验,多年的首席架构师 ...
CC老师,20年开发和使用经验,多年的首席架构师和CTO,畅销原创书籍《研磨设计模式》的作者参与和领导了上百个大中型项目,架构设计经验丰富。深入课程绝对会让你受益良多。话不多说,继续学习AQS的基础知识,逐步去理解AQS,本节内容包括:
1:理解AQS的模板方法和钩子方法
AQS使用 模板方法模式引申出两个问题:
(1):哪些方法是我们可以重写的,也就是 模板方法模式中的 钩子方法
(2):AQS到底提供了哪些模板方法
2:看JavaDoc,学习AQS提供的功能
具体的内容,请参看视频吧!文字的东西总是不如视频来得直观和清晰欲知更多的精彩视频,关注公众号:设计架构一起学 ...
AQS的内容还是有一定的难度的,为了让大家学习起来更轻松,这里从零讲起,一步一步深入,本节内容包括:
1:理解AQS是什么、能干什么
2:理解独占锁和共享锁
3:理解AQS基本的设计思路:图示
具体的内容,请参看视频吧!文字的东西总是不如视频来得直观和清晰
精彩还在继续,相关视频均发布在公众号,欢迎关注公众号
qrcode_for_gh_92711ec50242_258.jpg
这次先来分享《并发编程和源码分析》方面的内容,欢迎品鉴!吹牛的话就不说了,做技术的人,要低调的强大!谈并发编程,必谈AQS,要想透彻理解AQS,必然要深入理解AQS的原理、流程,然后细细研读它的源码,没有比源码更好的资料了。接下来,将通过一系列的内容,带着大家去一步一步理解AQS,一行一行去品读源码,一步一步去画图分析流程!这些内容是我在《高级互联网架构师技术实战培训》系列课程里面讲述的内容,现在分享给大家,希望大家都能有所收获!学习建议:在设计和安排课程内容的时候,会逐步渗透,让知识的曲线不会突然变得那么陡峭,因此,不建议跳过一大片内容,直接去看所谓的“精华”部分,跟着课程,可以自然而然 ...
1:架构图
image.png
2:ZuulServlet
Zuul的核心是一系列的filters,Zuul大部分功能都是通过过滤器来实现的
1:ZuulServlet是Zuul的核心类,用来调度不同阶段的filters,处理请求,并处理异常等,路径是/zuul,可以使用zuul.servlet-path属性更改此路径2:功能类似于SpringMvc的DispatcherServlet,所有的Request都要经过它的处理3:里面有三个核心方法:preRoute(),route(), postRoute()4:ZuulServlet会把具体的执行交给ZuulRunner去做, ...
1:Zuul是什么
Zuul是Netflix开源的API网关。API网关,类似于面向对象设计模式中的Facade模式,它的存在就像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来进行调度和过滤,它除了要实现请求路由,负载均衡,来源合法性检测,权限校验,反爬虫等功能之外,还需要更多能力,比如与服务治理框架的结合,请求转发时的熔断机制,服务的聚合等一系列的高级功能。官网:https://github.com/Netflix/zuul/
2:Zuul能干什么
身份验证和安全 - 识别每个资源的身份验证要求,并拒绝不满足的请求
审查和监测 - 跟踪边缘的有意义的数据和统计数 ...
1:概述
由于Spring Cloud Feign的客户端负载均衡是通过Spring Cloud Ribbon实现的,所以可以直接通过配置Ribbon客户端的方式来自定义各个服务客户端调用的参数
2:全局配置
ribbon.ConnectTimeout=500
ribbon.ReadTimeOut=5000
3:指定服务配置
userService.ribbon.ConnectTimeout=500
userService.ribbon.ReadTimeout=2000
4:重试机制
userService.ribbon.ConnectTimeout=50 ...
1:Ribbon是什么
Ribbon是一个开源的客户端负载均衡器,由Netflix发布,是SpringCloud-Netflix中重要的一环,通过它将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项,如连接超时、重试等。简单的说,就是在配置文件中列出Load Balancer后面所有的服务,Ribbon会自动的基于某种规则(如简单轮询,随机连接等)去连接这些服务,也很容易实现自定义的负载均衡算法。
2:Ribbon能干什么
Ribbon是在客户端来实现负载均衡的访问服务,主要的功能点:1:服务发现,发现依赖服务的列表2:服务选择规则,在多个服务中如何选择 ...
1:Feign是什么
Feign是一个声明式的Web服务客户端,使得编写Web服务客户端变得非常容易,只需要创建一个接口,然后在上面添加注解即可。官网:https://github.com/OpenFeign/feign
2:Feign能干什么
Feign旨在使编写Java Http客户端变得更容易。
前面在使用Spring Cloud Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来 ...
1:雪崩效应概述
多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”
2:熔断机制概述
熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。 在Spring Cloud框架里,熔断机制通过Hystrix实现。Hystrix ...
1:工作流程图解
image.png
2:流程说明
创建一个 HystrixCommand 或 HystrixObservableCommand 实例来向其它组件发出操作请求,通过构造方法来创建实例。
缓存判断检查缓存内是否有对应指令的结果,如果有的话,将缓存的结果直接以 Observable 对象的形式返回
断路器判断检查Circuit Breaker的状态。如果Circuit Breaker的状态为开启状态,Hystrix将不会执行对应指令,而是直接进入失败处理状态(图中8)。如果Circuit Breaker的状态为关闭状态,Hystrix会继续执行
线程池、任务队列 ...
1:概述
image.png
Hystrix使用Archaius作为配置属性的默认实现。官方配置文档: https://github.com/Netflix/Hystrix/wiki/Configuration每个属性有四个优先级,依次增大:
1:代码的全局默认值
2:动态全局默认属性可以使用全局属性文件来更改全局默认值。
3:代码实例默认定义特定于实例的默认值,比如在HystrixCommand构造函数中设置的值
4:动态实例属性可以动态设置实例特定的值,从而覆盖前面三个默认级别,格式是:hystrix.command.命令key.属性名称=值
2:请求上下文
1: ...