摘要:
前言 分布式锁想必大家并不陌生:控制分布式系统之间同步访问共享资源的一种方式。 如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。 实现分布式锁的方式多种多样,但一般来说都是使用编码的方 阅读全文
摘要:
前言 在今天,依然有许多人对循环依赖有着争论,也有许多面试官爱问循环依赖的问题,更甚至是在Spring中只问循环依赖,在国内,这彷佛成了Spring的必学知识点,一大特色,也被众多人津津乐道。而我认为,这称得上Spring框架里众多优秀设计中的一点污渍,一个为不良设计而妥协的实现,要知道,Sprin 阅读全文
摘要:
如果你认为单元测试会降低开发效率,那么它做的事就是让你的开发效率少降低一点;如果你认为单元测试可以提高开发效率,那么恭喜你,它会是一份宝藏。这是一篇涵盖了大部分场景下需要用到的单元测试方法介绍,不管你是新手还是老鸟,都建议读读看。 阅读全文
摘要:
对于QPS,RT这些名词想必大家都不陌生,但是说到如何提升他们却一筹莫展。今天我们就来研究一下吧 目录 名称解释 QPS与线程数的关系 最佳线程数 案例 优化方向 QPS与RT的关系 总结 名词解释 RT(Response Time): 1个请求所完成的时间 QPS(Query Per Second 阅读全文
摘要:
在上文Sentinel流量防卫兵中讲到了Sentinel入门以及流控规则一小部分,而Sentinel还有以下规则: 熔断降级规则 热点参数规则 系统规则 黑白名单规则 本文要讲的是流控规则 流量控制规则 原理 监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时 阅读全文
摘要:
前言 在我们平常工作中,总会有这样的事情发生:服务无法承受过多的请求而被打挂。 一般我们可以从两个方面处理: 增加节点,水平扩展(钱总是万能的) 对请求量过高的接口进行限流(没钱也不是不可以) 突发情况下我们会先用第一种方案,然后再过渡到第二种。毕竟:穷就一个字 随着这样的事情发生多了,系统就会可以 阅读全文
摘要:
在上一期SpringBoot自定义starter中,我们讲到自动配置类是可以不加@Configuration注解的,但是在特定的场景会引发一个小小的问题,今天我们就来聊一下这个奇怪的小知识吧 案例 先定义两个Bean, 其中Foo依赖Boo public class Bar { public Bar 阅读全文
摘要:
今天,我们还是来补一下SpringBoot自动装配原理留下的坑:如何查看组件的源码并进行自定义扩展。 在聊这个之前,我们得先来学习一下@Conditional注解的使用,看过组件里一些自动配置类的小伙伴肯定会发现这样的现象:里面充斥了大量的@ConditionalOnXxxxx的注解,那么这些注解的 阅读全文
摘要:
上期讲到,关于SpringBoot自动装配原理,相信小伙伴们已经看明白啦,今天,我们就来聊一聊如何根据自动装配原理,自定义一个starter吧 什么是starter 我们玩了那么久的SpringBoot, 几乎项目依赖中基本上全是各种各样的starter, 那么到底什么是starter? start 阅读全文
摘要:
前言 我相信,只要你用过Spring Boot,就会对这样一个现象非常的好奇: 引入一个组件依赖,加个配置,这个组件就生效了。 举个例子来说,比如我们常用的Redis, 在Spring Boot中的使用方式是这样的: 1.引入依赖 <dependency> <groupId>org.springfr 阅读全文