- 博客(11)
- 收藏
- 关注
原创 【JVM】OOM类型及解决方案
jmap -heap查看是否内存分配过小;查看是否有明显的对象分配过多且没有释放情况;jmap -dump导出 JVM 当前内存快照,使用 JDK 自带或 MAT 等工具分析快照。如果上面还不能定位问题,那么需要排查应用是否在不断创建资源,比如网络连接或者线程,都可能会导致系统资源耗尽。
2023-10-30 17:29:52 500 1
原创 【JUC】lock()方法为什么要放在try语句之前
不推荐,原因在于加锁操作可能会抛出异常,如果加锁操作在try块之前,那么出现异常时try-finally块不会执行,程序直接因为异常而中断执行;如果加锁操作在try块中,由于已经执行到了try块,那么finally在try中出现异常时仍然会执行,此时try中的加锁操作出现异常,finally依然会执行解锁操作,而此时并没有获取到锁,执行解锁操作会抛出另外一个异常,虽然都是抛出异常结束,但是。所以,加锁之后直接执行try块,不要执行predo操作。为何加锁操作需要在try之前,能否在try块中执行呢?
2023-10-28 11:29:35 483 1
原创 【分布式】雪花算法
由于41位是时间戳,我们的时间计算是从1970年开始的,只能使用69年,为了不浪费,其实我们可以用时间的相对值,也就是以项目开始的时间为基准时间,往后可以使用69年。如果前端直接使用服务端生成的long 类型 id,会发生精度丢失的问题,因为 JS 中Number是16位的(指的是十进制的数字),而雪花算法计算出来最长的数字是19位的,这个时候需要用 String 作为中间转换,输出到前端即可。表示的其实就是x位全是1的值,也就是x位的二进制能表示的最大数值。异或计算之后,其实得到的,就是后面3位全是1。
2023-10-27 17:28:07 90 1
原创 【消息队列】RabbitMq和Kafka的区别
作为常见的两大消息传递系统,相信大家都有一个疑问:究竟什么场景该选用RabbitMq,什么时候又该使用Kafka呢?不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺点,最后我们会说明一下怎样选择这两种技术。
2023-10-16 22:08:51 419 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人