- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 【JVM补充】频繁fullgc的解决思路
背景最近在整理JVM的知识体系,想到了大家平时都会讨论了一个话题,当然也是面试常问的一个话题,就是发生频繁fullGC的情况,我们应该如何应对,如何找到问题并且如何解决问题,这是让人 头大 的事情。发现问题我们先思考一下,我们平时是怎么发现频繁fullgc的,它的表现形式有哪些,这里只列举出来我能想到的几个点,可能还有其他的表现形式。CPU满载告警API响应时间过长内存反复波动主动GC…定位问题...
2021-05-12 00:25:41 2397
原创 【JVM补充】静态多分派,动态单分派
背景之前在看过第二版的《深入理解JVM虚拟机》之后,对 java是一种静态多分派和动态单分派的语言 相关的说明和介绍,我理解的就不是很清晰,最近在看第三版的书,又看到了这个地方,所以在这里记录一下理解,以便之后回顾。...
2021-05-07 16:36:49 291
原创 JVM详解(类加载,内存分配,GC,内存模型)
一. 背景1. 前言作为一位Java开发工作者,在关心业务代码开发的同时,我们也需要了解java底层时如何运作的,了解为什么说java是跨平台的语言,所以这一篇对JVM(java虚拟机)进行剖析和详解,首先让我们来看一张JDK的概念图( 下文都是围绕HotSpot虚拟机展开 ):从上图可以看出,概念图中最上层的是工具包和工具,往下是部署包和组件,再往下是基础库,而最下层的就是JVM虚拟机,所以说,整个JDK都架于JVM之上,由此可见 了解和深入JVM对我们以后工作和学习的深度和广度都有很大的影响。
2021-01-02 17:34:30 714 1
原创 调度算法 - 时间轮
调度算法 - 时间轮一. 背景在我们的业务场景中,经常会使用到定时任务功能,比如定时发送消息,定时执行数据同步,比如之前的文章介绍的分布式事务中的本地事务表方式的解决方案等等,特别是在现在大数据量和分布式服务环境下,定时任务调度越来越频繁,所以对应的定时任务调度的算法实现也越来越完善。在之前的单机环境下,我们可以使用 ScheduledThreadPool 起一个延迟任务线程池,定时的执行任务,又或者使用spring提供的 @Schedule 注解配合上 cron表达式 开启一个定时任务,又或者是lin
2020-10-17 02:03:24 2030 3
原创 Raft分布式一致性算法原理(选举和同步)
Raft分布式一致性算法原理(选举和同步)一. 背景在集群环境下,很容易出现单节点故障的问题,那么我们就需要进行集群部署,但是当集群部署的环境下,我们如何保证工作有序的调度与通信并且保证一致性呢,当客户端发送一连串指令,我们需要在集群环境下,所有服务机器最终要保证一致性,而且在出现一系列异常并且恢复之后的情况下,仍然要保证 最终状态的一致性(状态机) ,于是就引出了分布式一致性协议。在说到 分布式一致性协议 ,多数人第一个想到的就是大名鼎鼎的 Paxos 协议,因为我们最常用的 Zookeeper 采
2020-09-04 22:11:15 4921
原创 分布式锁的原理,并基于redis,zookeeper和mysql方式实现
分布式锁的原理,并基于redis,redisson,zookeeper和mysql方式实现一. 背景在分布式环境下 为了解决 资源抢占问题 和 幂等性 等问题 ,单机锁已经无法解决这个问题了,所以会使用到分布式锁,这一篇主要介绍:利用redis实现分布式锁 (核心思想)浅谈redisson组件实现分布式锁基于zookeeper实现分布式锁基于mysql的排他锁机制实现分布式锁所以接下来的内容会比较多,而且涉及到redis, lua脚本, redisson, zk的使用,所以希望大家可以耐
2020-08-28 23:06:56 604 6
原创 分布式事务解决方案和原理
分布式事务解决方案和原理,以及引发的思考一. 背景:我们都知道, 在以前的 all in one 的项目开发模式下, 所有事务问题都是本地事务问题, 基本上利用mysql的优化方案和java提供的API, 可以解决绝大多数本地事务问题,而在现在的分布式及微服务的模式下,很多事务问题就不是简单的本地事务问题了,正是由于在为服务环境下存在的网络延迟问题,机器不可用问题,以及一次操作由多个系统协同完成而产生的各类问题,导致了逻辑上的一次事务违反了ACID中的特性问题。之前的文章介绍了事务中的ACID和事务的
2020-08-20 23:02:32 1346 2
原创 并发编程之AQS与ReentrantLock锁源码/原理剖析
背景:JUC并发包提供了很多线程并发问题的解决方案,包括ConcurrentHashMap哈希Map,ConcurrentLinkedDeque阻塞队列,Executor线程池以及locks包,Atomic原子类的包等数据结构和逻辑思想,本章节主要讨论AbstractQueuedSynchronizer(AQS),基于AQS实现的Lock锁,以及基于AQS和Lock锁扩展的Condition等待队列,其余部分会有专门章节分析。一. AQS(AbstractQueuedSynchronizer)1. A
2020-08-13 00:04:26 312
原创 InnoDB引擎的事务与锁
InnoDB引擎的事务与锁一. 背景:事务和事务引发的问题1. ACID原子性:表示整个事务是不可分割的,要么都执行成功,要么都执行失败。一致性:保证完整性约束没有被破坏。隔离性: 事务不可见行,事务与事务之间分离不可见。持久性:事务一旦提交,其结果就是永久性的,即使发生宕机,数据也是可以恢复的。2. 事务的分类1. 扁平事务扁平事务是事务中最简单的一种,也是使用最频繁的,在扁平事务中,所有操作都处于同一层次,由BEGIN开始,COMMIT 或者ROLLBACK结束,其操作都是原子性的。
2020-08-10 21:15:13 1079 3
sia-task执行流程.png
2020-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人