博客园 - 不送花的程序猿
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=54545
2022-01-01T08:02:27Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
feed.cnblogs.com
https://www.cnblogs.com/Howinfun/p/15755559.html
Redisson分布式锁学习总结:公平锁 RedissonFairLock#lock 获取锁源码分析 - 不送花的程序猿
原文链接:Redisson分布式锁学习总结:公平锁 RedissonFairLock#lock 获取锁源码分析 一、RedissonFairLock#lock 源码分析 public class RedissonFairLockDemo { public static void main(Strin
2022-01-01T08:02:00Z
2022-01-01T08:02:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文链接:Redisson分布式锁学习总结:公平锁 RedissonFairLock#lock 获取锁源码分析 一、RedissonFairLock#lock 源码分析 public class RedissonFairLockDemo { public static void main(Strin <a href="https://www.cnblogs.com/Howinfun/p/15755559.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/15755561.html
Redisson分布式锁学习总结:公平锁 RedissonFairLock#unLock 释放锁源码分析 - 不送花的程序猿
原文链接:Redisson分布式锁学习总结:公平锁 RedissonFairLock#unLock 释放锁源码分析 一、RedissonFairLock#unlock 源码分析 上一篇讲到,RedissonFairLock 它主要是基于 RedissonLock 做的扩展,主要扩展在于加锁和释放锁的
2022-01-01T08:02:00Z
2022-01-01T08:02:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文链接:Redisson分布式锁学习总结:公平锁 RedissonFairLock#unLock 释放锁源码分析 一、RedissonFairLock#unlock 源码分析 上一篇讲到,RedissonFairLock 它主要是基于 RedissonLock 做的扩展,主要扩展在于加锁和释放锁的 <a href="https://www.cnblogs.com/Howinfun/p/15755561.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/15755555.html
Redisson分布式锁学习总结:可重入锁 RedissonLock#unlock 释放锁源码分析 - 不送花的程序猿
原文链接:Redisson分布式锁学习总结:可重入锁 RedissonLock#unlock 释放锁源码分析 一、RedissonLock#lock 源码分析 1、根据锁key计算出 slot,一个slot对应的是redis集群的一个节点 redisson 支持分布式锁的功能,基本都是基于 lua
2022-01-01T08:01:00Z
2022-01-01T08:01:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文链接:Redisson分布式锁学习总结:可重入锁 RedissonLock#unlock 释放锁源码分析 一、RedissonLock#lock 源码分析 1、根据锁key计算出 slot,一个slot对应的是redis集群的一个节点 redisson 支持分布式锁的功能,基本都是基于 lua <a href="https://www.cnblogs.com/Howinfun/p/15755555.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/15755551.html
Redisson分布式锁学习总结:可重入锁 RedissonLock#lock 获取锁源码分析 - 不送花的程序猿
原文:Redisson分布式锁学习总结:可重入锁 RedissonLock#lock 获取锁源码分析 一、RedissonLock#lock 源码分析 1、根据锁key计算出 slot,一个slot对应的是redis集群的一个节点 redisson 支持分布式锁的功能,基本都是基于 lua 脚本来完
2022-01-01T07:59:00Z
2022-01-01T07:59:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文:Redisson分布式锁学习总结:可重入锁 RedissonLock#lock 获取锁源码分析 一、RedissonLock#lock 源码分析 1、根据锁key计算出 slot,一个slot对应的是redis集群的一个节点 redisson 支持分布式锁的功能,基本都是基于 lua 脚本来完 <a href="https://www.cnblogs.com/Howinfun/p/15755551.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/15366297.html
MySQL学习总结:提问式回顾 undo log 相关知识 - 不送花的程序猿
MySQL学习总结:提问式回顾 undo log 相关知识
2021-10-04T05:49:00Z
2021-10-04T05:49:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】MySQL学习总结:提问式回顾 undo log 相关知识 <a href="https://www.cnblogs.com/Howinfun/p/15366297.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/15359777.html
MySQL学习总结:提问式图文回顾 redo log 相关知识 - 不送花的程序猿
MySQL学习总结:提问式图文回顾 redo log 相关知识
2021-10-01T09:47:00Z
2021-10-01T09:47:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】MySQL学习总结:提问式图文回顾 redo log 相关知识 <a href="https://www.cnblogs.com/Howinfun/p/15359777.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/15227849.html
Pulsar の 保证消息的顺序性、幂等性和可靠性 - 不送花的程序猿
原文链接:Pulsar の 保证消息的顺序性、幂等性和可靠性 一、背景 前面两篇文章,已经介绍了关于Pulsar消费者的详细使用和自研的Pulsar组件。 接下来,将简单分析如何保证消息的顺序性、幂等性和可靠性;但并不会每个分析都会进行代码实战,进行代码实战的都是比较有意思的点,如消费消息如何保证顺
2021-09-04T13:23:00Z
2021-09-04T13:23:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文链接:Pulsar の 保证消息的顺序性、幂等性和可靠性 一、背景 前面两篇文章,已经介绍了关于Pulsar消费者的详细使用和自研的Pulsar组件。 接下来,将简单分析如何保证消息的顺序性、幂等性和可靠性;但并不会每个分析都会进行代码实战,进行代码实战的都是比较有意思的点,如消费消息如何保证顺 <a href="https://www.cnblogs.com/Howinfun/p/15227849.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/15208843.html
自研 Pulsar Starter:winfun-pulsar-spring-boot-starter - 不送花的程序猿
自研 Pulsar Starter:winfun-pulsar-spring-boot-starter
2021-08-31T01:28:00Z
2021-08-31T01:28:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】自研 Pulsar Starter:winfun-pulsar-spring-boot-starter <a href="https://www.cnblogs.com/Howinfun/p/15208843.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/15200728.html
深入Pulsar Consumer的使用方式&源码分析 - 不送花的程序猿
原文链接 1、使用前准备 引入依赖: <dependency> <groupId>org.apache.pulsar</groupId> <artifactId>pulsar-client</artifactId> <version>2.6.1</version> </dependency> 2、P
2021-08-28T09:56:00Z
2021-08-28T09:56:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文链接 1、使用前准备 引入依赖: <dependency> <groupId>org.apache.pulsar</groupId> <artifactId>pulsar-client</artifactId> <version>2.6.1</version> </dependency> 2、P <a href="https://www.cnblogs.com/Howinfun/p/15200728.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14969945.html
线上BUG:MySQL死锁分析实战 - 不送花的程序猿
MySQL死锁分析实战
2021-07-04T13:16:00Z
2021-07-04T13:16:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】MySQL死锁分析实战 <a href="https://www.cnblogs.com/Howinfun/p/14969945.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14961111.html
2021-07-01阅读小笔记:Spring ioc 之组件扫描 - 不送花的程序猿
1、包扫描指定扫描路径的方式有几种?分别如何指定? 我们可以利用@ConponentScan注解对指定路径下的组件进行扫描,然后注入到Spring容器中。 指定扫描路径有两种方式:指定包路径和指定类 1.1 指定包路径 例子: @ComponentScan(basePackages = "com.g
2021-07-01T13:55:00Z
2021-07-01T13:55:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】1、包扫描指定扫描路径的方式有几种?分别如何指定? 我们可以利用@ConponentScan注解对指定路径下的组件进行扫描,然后注入到Spring容器中。 指定扫描路径有两种方式:指定包路径和指定类 1.1 指定包路径 例子: @ComponentScan(basePackages = "com.g <a href="https://www.cnblogs.com/Howinfun/p/14961111.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14880806.html
2021-06-13:G1垃圾回收器 - 不送花的程序猿
原文链接 2021-06-13:G1垃圾回收器 1、为啥需要G1 在 G1 出来之前,一般系统都是使用 ParNew + CMS。而不管是 ParNew 还是 CMS,对于新生代和老年代都是使用满了再进行gc,那么如果我们的机器配置了60G的内存,新生代和老年代的比例是1:2,那么老年代可以去到40
2021-06-13T10:15:00Z
2021-06-13T10:15:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文链接 2021-06-13:G1垃圾回收器 1、为啥需要G1 在 G1 出来之前,一般系统都是使用 ParNew + CMS。而不管是 ParNew 还是 CMS,对于新生代和老年代都是使用满了再进行gc,那么如果我们的机器配置了60G的内存,新生代和老年代的比例是1:2,那么老年代可以去到40 <a href="https://www.cnblogs.com/Howinfun/p/14880806.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14747935.html
Dubbo原理剖析 之 @DubboReference.version设置为* - 不送花的程序猿
原文链接 Dubbo原理剖析 之 @DubboReference.version设置为* 1 背景 Dubbo在消费端提供了一个功能,即将消费者的版本号指定为*,那么不管服务端的接口版本是啥,都可以调用成功。 2 初步猜测: dubbo接口定位逻辑:接口(全路径)+服务分组(group字段)+版本号
2021-05-09T07:13:00Z
2021-05-09T07:13:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文链接 Dubbo原理剖析 之 @DubboReference.version设置为* 1 背景 Dubbo在消费端提供了一个功能,即将消费者的版本号指定为*,那么不管服务端的接口版本是啥,都可以调用成功。 2 初步猜测: dubbo接口定位逻辑:接口(全路径)+服务分组(group字段)+版本号 <a href="https://www.cnblogs.com/Howinfun/p/14747935.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14636100.html
2021-04-09阅读小笔记:JDK8中的一等公民和Stream小概念 - 不送花的程序猿
1 一等公民和二等公民 在 jdk8之前,只有值(基本类型和实例引用)是一等公民,可以作为方法参数传递,而类和方法等是作为二等公民,不能作为方法的传参。 jdk8中,方法也可以作为一等公民传递,即方法(函数)可以作为方法参数传递,这称为函数式编程,而我们一般利用匿名函数(lambda表达式)作为方法
2021-04-09T02:31:00Z
2021-04-09T02:31:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】1 一等公民和二等公民 在 jdk8之前,只有值(基本类型和实例引用)是一等公民,可以作为方法参数传递,而类和方法等是作为二等公民,不能作为方法的传参。 jdk8中,方法也可以作为一等公民传递,即方法(函数)可以作为方法参数传递,这称为函数式编程,而我们一般利用匿名函数(lambda表达式)作为方法 <a href="https://www.cnblogs.com/Howinfun/p/14636100.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14619625.html
2021-04-05阅读小笔记:局部性原理 - 不送花的程序猿
原文链接:2021-04-05阅读小笔记:局部性原理 1 指导解决并发问题的两大原理 有两个理论可以指导我们处理高并发的问题:阿姆达尔定律和局部性定律。 1.1 阿姆达尔定律: 在并行计算中用多处理器的应用加速受限于程序所需的串行时间百分比 1.2 局部性原理: 局部性原理分为时间局部性和空间局部性
2021-04-05T13:41:00Z
2021-04-05T13:41:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文链接:2021-04-05阅读小笔记:局部性原理 1 指导解决并发问题的两大原理 有两个理论可以指导我们处理高并发的问题:阿姆达尔定律和局部性定律。 1.1 阿姆达尔定律: 在并行计算中用多处理器的应用加速受限于程序所需的串行时间百分比 1.2 局部性原理: 局部性原理分为时间局部性和空间局部性 <a href="https://www.cnblogs.com/Howinfun/p/14619625.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14539527.html
一个名叫Sentinel-Rules-SDK的组件,使得Sentinel的流控&熔断规则的配置更加方便 - 不送花的程序猿
原文链接:一个名叫Sentinel-Rules-SDK的组件,使得Sentinel的流控&熔断规则的配置更加方便 1 Sentinel 是什么? 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
2021-03-15T11:38:00Z
2021-03-15T11:38:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文链接:一个名叫Sentinel-Rules-SDK的组件,使得Sentinel的流控&熔断规则的配置更加方便 1 Sentinel 是什么? 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 <a href="https://www.cnblogs.com/Howinfun/p/14539527.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14480193.html
自研一套通俗易用的操作日志组件 - 不送花的程序猿
原文链接:自研一套通俗易用的操作日志组件 背景 不管是软件,应用还是网站,只要有用户使用,就有用户的操作行为。而在那些需要多用户互相协作,或者是多用户共同使用的系统或者网站,用户是会非常关心对于别人的操作。因为别人的操作很有可能会影响到他自己所拥有的一些财产。例如一个电商网站,商家弄了几个管理员来打
2021-03-04T06:42:00Z
2021-03-04T06:42:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】原文链接:自研一套通俗易用的操作日志组件 背景 不管是软件,应用还是网站,只要有用户使用,就有用户的操作行为。而在那些需要多用户互相协作,或者是多用户共同使用的系统或者网站,用户是会非常关心对于别人的操作。因为别人的操作很有可能会影响到他自己所拥有的一些财产。例如一个电商网站,商家弄了几个管理员来打 <a href="https://www.cnblogs.com/Howinfun/p/14480193.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14365419.html
Dubbo官网实战使用技巧 - 不送花的程序猿
#原文链接:Dubbo官网实战使用技巧 1、启动时检查: 我们检查依赖的服务是否启动,可利用下面三个属性,优先级从左到右逐渐降低。 如果服务不是强依赖,或者说服务之间可能存在死循环依赖,我们应该将 check 置为 false。 检查判断优先级: dubbo.reference.check > du
2021-02-03T01:52:00Z
2021-02-03T01:52:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】#原文链接:Dubbo官网实战使用技巧 1、启动时检查: 我们检查依赖的服务是否启动,可利用下面三个属性,优先级从左到右逐渐降低。 如果服务不是强依赖,或者说服务之间可能存在死循环依赖,我们应该将 check 置为 false。 检查判断优先级: dubbo.reference.check > du <a href="https://www.cnblogs.com/Howinfun/p/14365419.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14350872.html
(万字好文)Dubbo服务熔断与降级的深入讲解&代码实战 - 不送花的程序猿
代码实战,源码分析,带你彻底深入Dubbo架构如何做服务熔断与降级
2021-01-30T14:26:00Z
2021-01-30T14:26:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】代码实战,源码分析,带你彻底深入Dubbo架构如何做服务熔断与降级 <a href="https://www.cnblogs.com/Howinfun/p/14350872.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Howinfun/p/14279797.html
坐上JDK8时间SDK的小船,带你遨游UNIX时间戳与时区的小太空~ - 不送花的程序猿
利用 JDK8 的 LocalDateTime,带你看清 UNIX时间戳与时区的区别
2021-01-14T14:30:00Z
2021-01-14T14:30:00Z
不送花的程序猿
https://www.cnblogs.com/Howinfun/
【摘要】利用 JDK8 的 LocalDateTime,带你看清 UNIX时间戳与时区的区别 <a href="https://www.cnblogs.com/Howinfun/p/14279797.html" target="_blank">阅读全文</a>