涓流

72 篇文章
7.5K 次阅读
16 人订阅
举报

全部文章

leobhao

腾讯云 · 后台开发工程师 (已认证)

分布式共识算法(Paxos、Raft)

多个参与者针对某一件事达成完全一致:一件事,一个结论。 已达成一致的结论,不可推翻。

15110
leobhao

腾讯云 · 后台开发工程师 (已认证)

Java线程池异常处理

ThreadPoolExecutor 的 execute 方法不用过多分析, 就是线程池的执行流程, 这里看看 submit:

7610
leobhao

腾讯云 · 后台开发工程师 (已认证)

定时器算法

在日常开发中, 定时任务是一个比较关键的功能。 Java 中一般使用 JDK 中 Timer、ScheduledExecutorService 和调度框架 Qu...

11310
leobhao

腾讯云 · 后台开发工程师 (已认证)

限流算法(Guava RateLimiter)

这种算法很好实现, 但是会出现限流不准确问题。比如每秒通过 5 个请求,时间窗口的大小为 1 秒,当前时间窗口周期内的后半秒正常通过了 5 个请求,下一个时间窗...

12420
leobhao

腾讯云 · 后台开发工程师 (已认证)

LongAdder源码分析

并发环境重计数 AtomicLong 的 Add 操作是依赖自旋不断的 CAS 去累加一个 Long 值。如果在竞争激烈的情况下,CAS 操作不断的失败,就会有...

9010
leobhao

腾讯云 · 后台开发工程师 (已认证)

MySQL与缓存一致性问题

“数据一致”一般指的是:缓存中有数据,缓存的数据值 = 数据库中的值。一致性又分为几种程度:

13520
leobhao

腾讯云 · 后台开发工程师 (已认证)

jvm参数调优

jstat 用于监视虚拟机运行时状态信息,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT 编译等运行数据。

11530
leobhao

腾讯云 · 后台开发工程师 (已认证)

disruptor使用分析

Disruptor 是LMAX公司开源的一个高效的内存无锁队列,一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模...

18820
leobhao

腾讯云 · 后台开发工程师 (已认证)

缓存设计问题

很多使用场景,查询的缓存数据都是由定时任务取刷新,然后缓存查不到从 DB 查了在更新缓存。如果这些 key 在同一时间失效, 那么失效的时候,大量的请求过来。就...

7310
leobhao

腾讯云 · 后台开发工程师 (已认证)

分布式理论与分布式事务

CAP理论又称为布鲁尔定理, 它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

11710
leobhao

腾讯云 · 后台开发工程师 (已认证)

spring事务传播

在同一个类中,外部调用testTransactionWork,testTransactionWork无事务, insertTransaction有事务, 执行后...

6920
leobhao

腾讯云 · 后台开发工程师 (已认证)

ReentrantReadWriteLock读写锁

(1) tryAcquireShared 小于 0 代表没有获取到共享锁 (2) doAcquireShared 将当前节点进入阻塞队列中等待被唤醒,步骤2是挂...

5820
leobhao

腾讯云 · 后台开发工程师 (已认证)

mysql语句加锁分析

RU/RC 情况下加锁情况基本一致, 在加锁情况下脏读和不可重复读在任何一个隔离级别下都不会发生(因为读-写操作需要排队进行)

9310
leobhao

腾讯云 · 后台开发工程师 (已认证)

hystrix原理应用

在分布式架构中,一个应用依赖多个服务是非常常见的,如果其中一个依赖由于延迟过高发生阻塞,调用该依赖服务的线程就会阻塞,如果相关业务的QPS较高,就可能产生大量阻...

7420
leobhao

腾讯云 · 后台开发工程师 (已认证)

hystrix源码分析

执行 Hystrix 命令需要集成 HystrixCommand, 有四种调用方式:

8510
leobhao

腾讯云 · 后台开发工程师 (已认证)

ForkJoinPool使用及原理

Fork/Join 框架是 Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。

15721
leobhao

腾讯云 · 后台开发工程师 (已认证)

异步编程CompletableFuture使用

CompletableFuture 是对 Future 的扩展, 提供了函数式编程的能力,简化了异步编程的复杂性。

10910
leobhao

腾讯云 · 后台开发工程师 (已认证)

BlockingQueue

BlockingQueue 是一个先进先出的队列(Queue), 并且当获取队列元素但是队列为空时,会阻塞等待队列中有元素再返回;也支持添加元素时,如果队列已满...

9310
leobhao

腾讯云 · 后台开发工程师 (已认证)

池化设计之CommonPool

对象池化管理是一个很重要的功能,无论是数据库连接池还是redis连接池,都应该特别关注连接池的使用,重点关注几个关键的指标是否正常,连接池使用不当很有可能导致连...

10910
leobhao

腾讯云 · 后台开发工程师 (已认证)

AQS之condition与中断

我们常用 obj.wait(),obj.notify() 或 obj.notifyAll() 来实现生产者-消费者, 不过它们是基于对象监视器锁的。

13310

扫码关注腾讯云开发者

领取腾讯云代金券