随笔分类 -  JAVA高级

摘要:一款好用、性能良好的JAVA状态机开源软件推荐给你!目前github上fork2.4k,star8.7k!!! 阅读全文
posted @ 2022-11-30 14:26 陶朱公Boy 阅读(1111) 评论(2) 推荐(2) 编辑
摘要:今天跟大家分享一个关于“状态机”的话题。给你讲清楚什么是状态机、为什么需要状态机、适用场景、有哪些具体的实现方案以及各个方案对比(附带github源码地址) 阅读全文
posted @ 2022-11-14 13:40 陶朱公Boy 阅读(8489) 评论(0) 推荐(3) 编辑
摘要:场景: 加入线程A获取分布式锁进入方法A,由于某种原因Hang住了 到了指定时间释放锁,这个时候线程B进入得到锁,这个时候线程B很顺利完成业务逻辑操作,然后释放掉锁,就在这个时候线程A开始继续往下执行代码,按照这个逻辑他最终会执行finally代码块 执行到释放锁的逻辑 那么这个时候如果锁的值一样,很有可能会释放掉已经获取锁的线程持有的那把锁。 那么该如何设计呢? 答案很简单... 阅读全文
posted @ 2021-02-03 11:12 陶朱公Boy 阅读(2325) 评论(0) 推荐(0) 编辑
摘要:原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ ThreadLocal解决什么问题 由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuil 阅读全文
posted @ 2020-07-14 14:19 陶朱公Boy 阅读(1173) 评论(0) 推荐(1) 编辑
摘要:在实际应用场景中 特别是 1,2,4,8,16 这种2的整数次幂的数字,因为具有非常典型的特点 首先是 1、2、4 这几位数了,因为他们的特点就是二进制只有一个为 1 的位,其他位都是 0,并同其他数位 1 的位不冲突 所以我们的其中一个场景 比如用户需要一个字段他是多个字段值组合而成的,比如这样一 阅读全文
posted @ 2020-05-13 15:15 陶朱公Boy 阅读(513) 评论(0) 推荐(0) 编辑
摘要:在网络传输中,粘包和半包应该是最常出现的问题,作为 Java 中最常使用的 NIO 网络框架 Netty,它又是如何解决的呢?今天就让我们来看看。 阅读全文
posted @ 2020-05-06 17:17 陶朱公Boy 阅读(269) 评论(0) 推荐(0) 编辑
摘要:关于冒泡排序,从性能最低版本实现到性能最优版本实现 阅读全文
posted @ 2020-04-30 12:09 陶朱公Boy 阅读(372) 评论(0) 推荐(0) 编辑
摘要:用ZK实现分布式ID解决方案;利用顺序性节点创建 阅读全文
posted @ 2020-04-15 15:44 陶朱公Boy 阅读(540) 评论(0) 推荐(0) 编辑
摘要:Service Mesh 阅读全文
posted @ 2020-03-20 10:23 陶朱公Boy 阅读(867) 评论(0) 推荐(0) 编辑
摘要:本文从原始通信时代需要面临的服务自己需要处理丢包、乱序、重试等一系列流控问题再到Tcp时代解决了网络传输中通用流控的问题 当网络通信不再是一个难题时,这个时候分布式通信语义就出现了 比如熔断、负载均衡,服务发现,认证授权、trace跟踪和监控等 于是服务只能自己实现相关语义 这个时候第四代微服务出现了框架代表的如Spring Cloud本身实现了软负载和服务注册发现功能使得开发人员更加关注自身业务,到第五代时候 人们发现一个问题这些第四代的方案 都是局限于某种特定语言,而且还存在lib冲突等 因此 边车模式sideCar产生了代表Linkerd,Envoy,Ngixmesh 以一个小的边车服务和业务服务编排在一起 业务方完全不需要集成相关框架 再到第六代以Istil为代表的service Mesh 新增了集中式控制面板进行网络拓扑策略的更新和单机数据的汇报,目的是为了提供统一的上层运维入口 阅读全文
posted @ 2020-03-17 10:55 陶朱公Boy 阅读(617) 评论(0) 推荐(0) 编辑
摘要:令牌桶算法在限流组件的思路 阅读全文
posted @ 2020-03-13 19:48 陶朱公Boy 阅读(3493) 评论(0) 推荐(0) 编辑
摘要:redis、lua整合实战 阅读全文
posted @ 2020-03-09 18:17 陶朱公Boy 阅读(1757) 评论(0) 推荐(0) 编辑
摘要:秒杀系统架构设计明细篇 -摘自架构之美公众号 阅读全文
posted @ 2020-03-05 17:31 陶朱公Boy 阅读(467) 评论(0) 推荐(0) 编辑
摘要:Mysql死锁分析;原理等 阅读全文
posted @ 2020-01-08 17:46 陶朱公Boy 阅读(326) 评论(0) 推荐(0) 编辑
摘要:com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction 阅读全文
posted @ 2020-01-08 15:29 陶朱公Boy 阅读(619) 评论(0) 推荐(0) 编辑
摘要:悲观锁:总是认为别人一定会修改数据,所以会在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现 乐观锁:认为并发修改是一个低概率事件,所以采用一种乐观策略,比如数据库加版本号这种方式。每次提交时 会从数据库里读取最新version,并且检查 一开始拿出的version和提交那刻的version比较 原则:提交的版本号必须大于数据库最新版本号 阅读全文
posted @ 2019-12-23 19:23 陶朱公Boy 阅读(194) 评论(0) 推荐(0) 编辑
摘要:延迟阻塞队列 DelayQueue 延迟阻塞队列 DelayQueue DelayQueue 是一个支持延时获取元素的阻塞队列, 内部采用优先队列 PriorityQueue 存储元素,同时元素必须实现 Delayed 接口;在创建元素时可以指定多久才可以从队列中获取当前元素,只有在延迟期满时才能从 阅读全文
posted @ 2019-11-27 17:11 陶朱公Boy 阅读(319) 评论(0) 推荐(0) 编辑
摘要:很早之前在面试一个大厂职位的时候 有面试官提问 相信你一定用过redis,那么你肯定知道redis是基于内存的 那如果redis用满了 继续往里面添加数据 redis是怎么对待的 会出现问题?小伙伴如果没准备 估计会一脸懵逼.这篇文章是回答这个问题的答案... 阅读全文
posted @ 2019-09-27 17:53 陶朱公Boy 阅读(246) 评论(0) 推荐(0) 编辑
摘要:AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和Spring AOP的实现进行分析和介绍。 阅读全文
posted @ 2019-09-26 18:01 陶朱公Boy 阅读(3929) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示