摘要:
一、前言 在看JAVA并发包中的源码时,能发现有很多地方使用了volatile关键字声明变量,因此产生了疑问,volatile关键字是什么意思?用它声明的变量与普通的变量有什么不同?这个关键字在什么情况下会用到?带着这些疑问,我查了一些文章和书籍,在此记录一下,希望对大家有所帮助。 二、Volati 阅读全文
摘要:
”双肩包“、“格子衫”、“秃秃头”、“单身狗”,作为一名伟大而光荣的程序员,为啥给我贴这么多标签?宝宝心里苦呀!别人笑我太疯癫,我笑别人看不穿。我微微一笑,心中轻蔑的想:“无知的人类,其他我都忍了,敢说我们单身狗,知道我们每天创建多少个对象吗? 什么?不服气,今天就给你们介绍介绍魔鬼身材,温柔贤惠的 阅读全文
摘要:
现象 【Firing】- 应用异常告警 1. 容器CPU使用率超过50% 应用名称: 权限中心 产品: 业务中台-bPaaS/权限中心 用户: xxxx@ufida.com ID[环境]:online-iuap-apcom-auth[online] 报警信息: 应用[online-iuap-apco 阅读全文
摘要:
现象 【Firing】- 应用异常告警 1. 容器内存使用率特别高 应用名称: hrc-attend-report 产品: YonBIP公有云/人力云 用户: xxx ID[环境]:online-hrc-attend-report[online] 报警信息: 容器[online-hrc-attend 阅读全文
摘要:
本文对Java虚拟机工具的使用进行总结,并且记录了通过堆栈快照进行排查问题的思路,以便后续再发生问题时能够提供参考。 一、Java虚拟机工具 1、jps命令 jps是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。很多人 阅读全文
摘要:
带你拿下线程池——ThreadPoolExecutor Java中的线程池一般都是围绕着ThreadPoolExecutor来展开的。其他的实现基本上都是基于它或者模仿它来实现的,因此掌握了ThreadPoolExecutor,也就掌握了线程池的精髓。 本文首先讲述ThreadPoolExecuto 阅读全文
摘要:
一、前言 这是AQS系列的最后一篇了,第一篇我们通过ReetrantLock公平锁分析了AQS的核心,第二篇讲了非公平锁和Condition,还写一些线程中断的知识。在这一篇我们将讲解AQS共享模式的使用。有了前面的知识,相信这篇你会感觉很轻松。 本文先用 CountDownLatch 将共享模式说 阅读全文
摘要:
在上一篇中,我们对AbstractQueuedSynchronizer独占锁进了介绍,如果你对独占锁比较熟悉,可以跳过上一篇。本篇文章将介绍一下几点: ReentrantLock公平锁和非公平锁的区别 分析 AbstractQueuedSynchronizer 中的 ConditionObject类 阅读全文
摘要:
一、前言 目前,企业中大多数数项目中都会用redis做缓存,既然用了缓存,就可能会涉及到redis和数据库的双写,那么就一定会遇到数据一致性问题,我们该怎么解决一致性问题呢? 我想每家企业都会根据自己业务的需要有一套自己的解决方案,下面我们来分析一下常见的方案。 二、Redis做为只读缓存 2.1 阅读全文
摘要:
在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphor 阅读全文
摘要:
一、注册中心概述 1.1 注册中心基本介绍 Dubbo通过注册中心实现了分布式环境中各个服务的注册与发现,是各个分布式节点的纽带。其主要作用如下: 动态加入。一个服务通过注册中心可以动态的把自己暴露给其他消费者。 动态发现。消费者可以动态感知新的配置、路由规则和新的服务提供者。 动态调整。注册中心支 阅读全文