开发总结
liujunzxcv
这个作者很懒,什么都没留下…
展开
-
spring声明式事务总结
在spring框架下,一般使用注解@Transactional,在一个bean的方法头声明此方法中的对数据库的操作处于一个事务中,比如@Transactional(rollbackFor = Exception.class)public void testAInsert() throws Exception {在注解中可以用rollbackFor标注遇到哪种Throwable,比如E...原创 2020-03-02 00:02:03 · 202 阅读 · 0 评论 -
spring循环依赖问题
spring在DefaultSingletonBeanRegistry类中有以下几种缓存池: /** Cache of singleton objects: bean name to bean instance. */ //singletonObjects:key存bean name,value存bean实例private final Map<String, Object> s...原创 2020-02-06 17:45:23 · 1367 阅读 · 0 评论 -
guava RateLimiter源码解读
@CanIgnoreReturnValue //permits是此线程这次要取的令牌数 public double acquire(int permits) { //返回获得这些数量的令牌需要等待的时间 long microsToWait = reserve(permits); //等待此段时间,期间不响应中断 stopwatch.sleepMicrosUnin...原创 2019-11-29 00:57:16 · 436 阅读 · 0 评论 -
dubbo注册jvm关闭钩子时存在的问题
dubbo在停机时通过注册jvm关闭钩子来执行自身优雅停机工作,但当dubbo与spring一同运行时,由于spring也通过jvm关闭钩子注册:public abstract class AbstractApplicationContext:@Override public void registerShutdownHook() { if (this.shutdownHook == n...原创 2019-10-27 17:10:52 · 974 阅读 · 0 评论 -
dubbo 优雅停机原理
dubbo优雅停机的实现,首先主要依赖于jvm的ShutdownHook钩子函数,例如dubbo 2.5.x版本,在AbstractConfig中定义了:static { Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { public void run() { ...原创 2019-10-26 18:42:39 · 1465 阅读 · 0 评论 -
线程池shutdown源码
TODO原创 2019-06-30 21:44:55 · 731 阅读 · 2 评论 -
线程池awaitTermination源码
public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { //先转换为纳秒 long nanos = unit.toNanos(timeout); //获得主锁 final ReentrantL...原创 2019-07-02 23:42:29 · 851 阅读 · 0 评论 -
线程池execute源码
/** * Executes the given task sometime in the future. The task * may execute in a new thread or in an existing pooled thread. * 在未来某个时间执行指定传入的任务。 * 任务可以在一个新线程中执行,也可能在线程池中已存在的一个线程中...原创 2019-07-07 17:22:33 · 263 阅读 · 0 评论 -
线程池shutdownNow源码
/** * Attempts to stop all actively executing tasks, halts the * processing of waiting tasks, and returns a list of the tasks * that were awaiting execution. These tasks are drained (r...原创 2019-07-02 00:30:52 · 241 阅读 · 0 评论 -
dubbo提供者停止服务后zookeeper临时节点不能自动摘除
测试周版本和项目版本环境的dubbo服务提供者出现多个重复提供者,且停服务后服务节点无法摘除。zookeeper客户端使用的curator,首先排查curator创建的节点是否是临时节点,在本地环境起服务调试到AbstractZookeeperClient: @Override public void create(String path, boolean ephemeral) {...原创 2019-06-13 00:28:11 · 8579 阅读 · 0 评论