03 2021 档案

摘要:本文使用 ThreadPoolExecutor实现一个带优先级的线程池,其实正常的实现方式是使用优先级队列(java.util.PriorityQueue / java.util.concurrent.PriorityBlockingQueue)这种方式没办法同步的获取结果, 编程上有点复杂, ja 阅读全文
posted @ 2021-03-22 15:59 郭慕荣 阅读(1999) 评论(0) 推荐(0)
摘要:垂直分表: 垂直分表在日常开发和设计中比较常见,通俗的说法叫做“大表拆小表”,拆分是基于关系型数据库中的“列”(字段)进行的。通常情况,某个表中的字段比较多,可以新建立一张“扩展表”,将不经常使用或者长度较大的字段拆分出去放到“扩展表”中。ps:在字段很多的情况下,拆分开确实更便于开发和维护(曾见过 阅读全文
posted @ 2021-03-18 16:15 郭慕荣 阅读(245) 评论(0) 推荐(0)
摘要:youngGc触发条件大多数情况下,对象直接在年轻代中的Eden区进行分配,如果Eden区域没有足够的空间,那么就会触发YGC(Minor GC)进入老年代的途径1、YGC时,To Survivor区不足以存放存活的对象,对象会直接进入到老年代。2、经过多次YGC后,如果存活对象的年龄达到了设定阈值 阅读全文
posted @ 2021-03-16 17:28 郭慕荣 阅读(1329) 评论(0) 推荐(0)
摘要:一、InnoDB 一棵 B+ 树有几层呢?1-3层,约 2 千万行数据。因为这是可以算出来的,要搞清楚这个问题,我们先从 InnoDB 索引数据结构、数据组织方式说起。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是 512 字节,而文件系统(例如XFS/EXT4)他的最小单元是块,一个块的大 阅读全文
posted @ 2021-03-16 11:14 郭慕荣 阅读(401) 评论(0) 推荐(0)
摘要:一、方法一打印虚拟机所有参数 1 [jms_appus@zb_10-0-55-107_lin ~]$ java -XX:+PrintFlagsFinal -version | grep : 2 intx CICompilerCount := 2 {product} 3 uintx InitialHe 阅读全文
posted @ 2021-03-16 10:28 郭慕荣 阅读(203) 评论(0) 推荐(0)
摘要:前言分布式锁一般有三种实现方式:1. mysql数据库唯一索引;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇 阅读全文
posted @ 2021-03-13 13:37 郭慕荣 阅读(318) 评论(0) 推荐(0)
摘要:JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。现实企业级Java开发中,有时候我们会碰到下面这些问题 阅读全文
posted @ 2021-03-12 10:52 郭慕荣 阅读(299) 评论(0) 推荐(0)
摘要:(一)前置知识--泊松分布 hash桶中存放的链表长度概率 随着长度的增加而减小hashmap中的源码注释 (二) 为什么到8转为红黑树 到6转为链表TreeNodes(红黑树)占用空间是普通Nodes(链表)的两倍,为了时间和空间的权衡。节点的分布频率会遵循泊松分布,链表长度达到8个元素的概率为0 阅读全文
posted @ 2021-03-12 09:11 郭慕荣 阅读(1023) 评论(0) 推荐(0)
摘要:一、SpringBootApplication背后的秘密@SpringBootApplication注解是Spring Boot的核心注解,它其实是一个组合注解: 1 @Target(ElementType.TYPE) 2 @Retention(RetentionPolicy.RUNTIME) 3 阅读全文
posted @ 2021-03-11 15:16 郭慕荣 阅读(172) 评论(0) 推荐(0)
摘要:可重入锁可重入锁是指一个锁在被一个线程持有后,在该线程未释放锁前的任何时间内,只要再次访问被该锁锁住的函数区都可以再次进入对应的锁区域。可重入锁有一个可重入度的概念,即每次重新进入一次该锁的锁住的区域都会递增可重入度,每次退出一个该锁锁住的区域都会递减可重入度,最终释放全部锁后,可重入度为0。可重入 阅读全文
posted @ 2021-03-07 11:06 郭慕荣 阅读(2930) 评论(0) 推荐(0)
摘要:可重复读的实现Repeatable Read(可重复读):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录(读已经提交的,其实是读早于本事务开始且已经提交的),但是不能看到其他事务对已有记录的更新(即晚于本事务开始的),并且,该事务不要求与其他事务是“可串行化”的。这句话的核心,是“但是不 阅读全文
posted @ 2021-03-06 22:36 郭慕荣 阅读(947) 评论(0) 推荐(0)
摘要:1. 什么是幻读?幻读是在可重复读的事务隔离级别下会出现的一种问题,简单来说,可重复读保证了当前事务不会读取到其他事务已提交的 UPDATE 操作。但同时,也会导致当前事务无法感知到来自其他事务中的 INSERT 或 DELETE 操作,这就是幻读。关于行锁我们要知道的行锁在 InnoDB 中是基于 阅读全文
posted @ 2021-03-06 15:51 郭慕荣 阅读(2550) 评论(0) 推荐(0)
摘要:一、Redis 主从同步Redis主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消 阅读全文
posted @ 2021-03-03 16:15 郭慕荣 阅读(703) 评论(0) 推荐(0)
摘要:一、HTTP1.0和HTTP1.1的一些区别HTTP1.0最早在网页中使用是在1996年,那个时候只是使用一些较为简单的网页上和网络请求上,而HTTP1.1则在1999年才开始广泛应用于现在的各大浏览器网络请求中,同时HTTP1.1也是当前使用最为广泛的HTTP协议。 主要区别主要体现在:1、缓存处 阅读全文
posted @ 2021-03-03 14:18 郭慕荣 阅读(1255) 评论(0) 推荐(0)
摘要:ConcurrentHashMap主要就是为了应对 hashmap 在并发环境下不安全而诞生的,ConcurrentHashMap 的设计与实现非常精巧,大量的利用了 volatile,final,CAS 等 lock-free 技术来减少锁竞争对于性能的影响。我们都知道 Map 一般都是数组 + 阅读全文
posted @ 2021-03-03 10:19 郭慕荣 阅读(2161) 评论(0) 推荐(0)
摘要:我们执行这条命令的原因是希望 nginx 不停止服务始终在处理新的请求的同时把 nginx 的配置文件平滑的把旧的 nginx.conf 配置更新为新的 nginx.conf 配置。这样一个功能对于 nginx 非常有必要,但是有时候我们会发现在执行 nginx -s reload 命令后,work 阅读全文
posted @ 2021-03-02 16:46 郭慕荣 阅读(4778) 评论(0) 推荐(0)
摘要:Nginx 限流Nginx 提供两种限流方式,一是控制速率,二是控制并发连接数。 控制速率正常限流ngx_http_limit_req_module 模块提供限制请求处理速率能力,使用了漏桶算法(leaky bucket)。下面例子使用 nginx limit_req_zone 和 limit_re 阅读全文
posted @ 2021-03-02 15:40 郭慕荣 阅读(648) 评论(0) 推荐(0)
摘要:一:Nginx能做什么?①:反向代理②:负载均衡③:HTTP服务器(动静分离)④:正向代理 二:反向代理:反向代理应该是Nginx做的最多的一件事了。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的 阅读全文
posted @ 2021-03-01 21:53 郭慕荣 阅读(153) 评论(0) 推荐(0)
摘要:一 概述定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。适配器模式主要是用来参数转化的。属于结构型模式,主要分为三类:类适配器模式、对象的适配器模式、接口的适配器模式。 本文定义: 阅读全文
posted @ 2021-03-01 15:34 郭慕荣 阅读(133) 评论(0) 推荐(0)
摘要:1 客户端逻辑1.1 概述偏移量管理主要是指管理每个消息队列的消费进度:集群模式消费下会将消息队列的消费进度保存在Broker端,广播模式消费下消息队列的消费进度保存在消费者本地。组件分析:RocketMQ定义了一个接口OffsetStore。它的实现类有两个:RemoteBrokerOffsetS 阅读全文
posted @ 2021-03-01 13:30 郭慕荣 阅读(4118) 评论(0) 推荐(0)