
java
文章平均质量分 92
路从脚起
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring Cloud渐进式
直接看什么是微服务?文章。《[Spring Cloud] Eureka 的自我保护模式及相关问题》Hystrix 断路器通过 HystrixCircuitBreaker 实现。CLOSED:关闭OPEN:打开HALF_OPEN:半开其中,断路器处于OPEN状态时,链路处于非健康状态,命令执行时,直接调用回退逻辑,跳过正常逻辑。HystrixCircuitBreaker 状态变迁如下图 :HystrixCircuitBreaker 状态红线:初始时,断路器处于CLOSED状态,链路处于健康状态。原创 2023-03-16 10:31:21 · 261 阅读 · 0 评论 -
精尽 JDK 源码解析 —— 集合(六)TreeMap
在《精尽 JDK 源码解析 —— 集合(四)哈希表 LinkedHashMap》中,我们提到了两种有序Map 的选择。一种是 LinkedHashMap ,以前在该文进行了详细解析,而本文,我们开始 TreeMap 之旅,按照 key 的顺序的 Map 实现类。原创 2023-03-15 09:57:34 · 201 阅读 · 0 评论 -
精尽 JDK 源码解析 —— 集合(四)哈希表 LinkedHashMap
众所周知,HashMap 提供的访问,是无序的。而在一些业务场景下,我们希望能够提供有序访问的 HashMap。TreeMap :按照 key 的顺序。LinkedHashMap :按照 key 的插入和访问的顺序。LinkedHashMap ,在 HashMap 的基础之上,提供了顺序访问的特性。而这里的顺序,包括两种:按照 key-value 的插入顺序进行访问。关于这一点,相信大多数人都知道。按照 key-value 的访问顺序进行访问。通过这个特性,我们实现基于 LRU 算法的缓存。原创 2023-03-14 19:55:07 · 404 阅读 · 1 评论 -
精尽 JDK 源码解析 —— 集合(三)哈希表 HashMap
HashMap ,是一种散列表,用于存储 key-value 键值对的数据结构,一般翻译为“哈希表”,提供平均时间复杂度为 O(1) 的、基于 key 级别的 get/put 等操作。之前我们在分享《精尽 JDK 源码解析 —— 集合(一)数组 ArrayList》中提到过,“在前些年,实习或初级工程师的面试,可能最爱问的就是 ArrayList 和 LinkedList 的区别与使用场景”。现在已经改变成,HashMap 的实现原理是什么。原创 2023-03-14 19:46:55 · 189 阅读 · 0 评论 -
精尽 Redisson 源码分析 —— 限流器 RateLimiter
限流,无论在系统层面,还是在业务层面,使用都非常广泛。【业务】为了避免恶意的灌水机或者用户,限制每分钟至允许回复 10 个帖子。【系统】为了避免服务系统被大规模调用,超过极限,限制每个调用方只允许每秒调用 100 次。限流算法,常用的分成四种:每一种的概念,推荐看看《计数器、滑动窗口、漏桶、令牌算法比较和伪代码实现》文章。计数器比较简单,每固定单位一个计数器即可实现。滑动窗口Redisson 提供的是基于滑动窗口RateLimiter 的实现。相比计数器。原创 2023-03-14 11:03:57 · 2944 阅读 · 1 评论 -
精尽 Redisson 源码分析 —— 可重入分布式锁 ReentrantLock
在 Redisson 中,提供了 8 种分布锁的实现,具体我们可以在《Redisson 文档 —— 分布式锁和同步器》中看到。绝大数情况下,我们使用可重入锁(Reentrant Lock)就够了,对应到就是类,具体的使用示例可以看看《芋道 Spring Boot Redis 入门》的「6.2 Redis 分布式锁」小节。在《精尽 Redis 面试题》的问题中,我们在聊到“如何使用 Redis 实现分布式锁?这个题目中,提到了需要考虑的 7 个方面,这里我们再来重复看下:1、正确的获得锁。原创 2023-03-14 11:11:59 · 695 阅读 · 1 评论 -
精尽 Redisson 源码分析 —— 可靠分布式锁 RedLock
1、客户端 A 从 Redis Master 获得到锁anylock。2、在 Redis Master 同步anylock到 Redis Slave 之前,Master 挂了。3、Redis Slave 晋升为新的4、客户端 B 从新的Redis Master 获得到锁anylock。此时,客户端 A 和 B 同时持有anylock锁,已经失效。当然,这个情况是极小概率事件。主要看业务对分布式锁可靠性的诉求。原创 2023-03-14 13:01:39 · 574 阅读 · 0 评论 -
精尽 Spring Boot 面试题
所以,上面的缺点,严格来说可能不太适合在面试中回答。通过 Spring Boot ,我们开发者可以快速配置 Spring 项目,引入各种 Spring MVC、Spring Transaction、Spring AOP、MyBatis 等等框架,而无需不断重复编写繁重的 Spring 配置,降低了 Spring 的使用成本。当然,Spring Boot 只考虑大多数的开发场景,并不是所有的场景,若在实际开发中我们需要配置Bean ,而 Spring Boot 没有提供支持,则可以自定义自动配置进行解决。原创 2019-11-07 20:09:24 · 1342 阅读 · 1 评论 -
String类为什么是final的
主要是为了”安全性“和”效率“的缘故,因为:1、由于String类不能被继承,所以就不会没修改,这就避免了因为继承引起的安全隐患;2、String类在程序中出现的频率比较高,如果为了避免安全隐患,在它每次出现时都用final来修饰,这无疑会降低程序的执行效率,所以干脆直接将其设为final一提高效率;转载:https://www.cnblogs.com/hellowhy/p/6536590....转载 2019-06-04 15:05:06 · 137 阅读 · 0 评论 -
'Periodic workspace save .' has encountered a problem
最近eclipse总是弹出一个窗口,内容是: ‘Periodic workspace save .’ has encountered a problem1、打开Windows–>Preferences–>General–>Startup and Shutdown将“RSE UI”的选中状态去掉,关闭Eclipse;2、打开Eclipse工作空间将“RemoteSystemsT...原创 2019-06-04 12:02:30 · 6692 阅读 · 1 评论 -
window node 安装
windows环境安装步骤:1.下载node(http://nodejs.cn/download)2.cnpm的安装 注释:大家都知道的啦,npm大多数都是外国的,安装时候会很慢,所以我呢就是用淘宝的镜像服务器。 安装命令:npm install -g cnpm --registry=https://registry.npm.taobao.org3.用cnpm安装vuecnpm i...原创 2019-06-04 11:50:33 · 199 阅读 · 0 评论 -
[ERROR] Sorry! ionic serve can only be run in an Ionic project directory.
输入ionic serve[ERROR] Sorry! ionic serve can only be run in an Ionic project directory.解决方法:执行 npm install -g ionic@legacy原创 2019-06-19 11:53:54 · 4527 阅读 · 0 评论 -
window下启动redis报错:creating server tcp listening socket 127.0.0.1:6379: bind No error
window下启动redis报错:creating server tcp listening socket 127.0.0.1:6379: bind No error解决方案如下按顺序输入如下命令就可以连接成功redis-cli.exeshutdownexitredis-server.exe redis.windows.conf...原创 2019-05-16 14:35:28 · 618 阅读 · 0 评论