石福鹏

的个人博客

(三)JVM内存模型

加载过程之Linking、Initializing Linking、Initializing Linking分为三步: Verfication: 校验,校验是否符合class文件的标准 Preparation:将class文件中的静态变量赋默认值 Resolution:把class文件中常量池用到的符号引用。转化成内存地址,可以直接使用 将类、方法、属性等符号引用解析为指针、偏移量等内存......

(二)打破双亲委派?

上篇文章中说到,双亲委派是在ClassLoader类的loadClass()方法中实现的,因此想打破,那就是 重写loadClass() 打破过双亲委派机制的情况(周志明写的《深入理解java虚拟机》中有说) JDK1.2之前,自定义ClassLoader都必须重写loadClass()方法 可以在一个线程设定自己线程上下文的ClassLoader ThreadContext......

(一)JVM入门以及Class文件架构、类加载器

JVM入门以及Class文件架构、类加载器 加载过程

一、引言 首先看一张图 Java 是编译型语言还是解释型语言? 有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。 也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。 可以说Java是兼具编译型语言与解释型语言的特点的。 另外,一些常用的代码,其实会被JIT即时编译器进行编译 ......

Zookeeper原理知识以及Paxos、Zab、角色功能

Zookeeper原理知识、paxos、ZAB、watch、API、callback等

上一篇文章中说到Zookeeper的特征:可扩展(可以很多节点)、可靠性、时序性、快速 首先扩展性 一、扩展性 一般在说到架构、框架的时候,都会谈到一个角色问题 因为现在大多数架构都是分布式,分布式就会有分布不同的角色,角色之前相互通信,联系,以及各自的职能 对于zookeeper来说,角色有leader、follower,这是一种主从的架构,是需要通信的,一个主,多个存,其实除了这两者......

Zookeeper基础知识

Zookeeper介绍、安装、shell cli使用

一、引入 前面的关于Redis的文章中,关于Redis复制集群数据一致性,说过这么一张图 完成分布式协调很难,因为在解决击穿和穿透都会用到分布式锁,即Redis中的数据没有了,这个时候并发请求获取一些数据,这样就会透传到数据库,有了锁之后,就不会存在并发一下全部压到数据库,其中一层层向后并发流量这个过程很复杂 这就引出了Zookeeper,它可以减轻分布式应用程序从头开始实施协调服务......

Redis面试:击穿、穿透、雪崩、分布式锁、API

Redis面试中常见的问题:击穿、穿透、雪崩、分布式锁、API(jedis、luttce、springboot:low/high level)

一、击穿 Redis当用来做缓存使用时候,通常用来缓存热数据,同时会有数据库比如mysql存储所有数据 由于一些数据过期或者清理了某些数据,导致之后的请求进来之后直接穿过redis,请求数据库,这就是 击穿 由于KEY的过期造成并发访问数据库,就是击穿 那该如何解决? 首先我们的出发点是阻止并发去到数据库,但是redis中又没有该KEY 1、首先所有请求都get key 2、发现没有ke......

Docker构建报错failed to fetch oauth-token

Docker 构建报错failed to fetch oauth-token

在进行build镜像的时候出现这样的报错: 123456789101112 ✔  docker build -t lnmp:v1 .  ✔  1626  17:50:35......

SS客户端如何把代理分享给局域网内的其他设备

一台设备可以实现科学上网,其他设备不需要安装客户端也可以实现轻松科学上网

我们经常会有这样的需求,就是局域网内的一台设备已经搭建了SS服务,那么如果局域网内的其他设备可以不用再安装客户端,做连接配置或者订阅就可以实现科学上网,这是最方便不过的,而且可以分享给同事使用 之前写过搭建SS的过程使用Docker搭建SS 另外,很多客户端还有个功能,那就是允许局域网连接: 一、获取连接信息 查看一下代理端口,一般在软件的设置中即可查看,这个代理端口即其他设备连入的端口......

Redis集群之分区方式及Redis Cluster

当数据量很大的时候,通常每台服务器就几个G,该如何存储;Redis集群方式三

redis内存总是有限的,即使服务器内存很大,假如180g,你也不会让一个redis实例使用180g的内存,因为redis在做持久化等等操作时时间成本很大,一般都是几个G就可以了,这样所有的环节都很轻盈,而且假如你让redis很大,因为一个redis进程要管理那么多的内存,序列化,持久化,就会相对慢一些,那么当数据量比较大的时候,我们要怎么往里面放呢? 一、大数据量在集群中的存储(作为缓存用......

Redis集群之主从复制、哨兵模式

redis单节点可能存在的问题,以及CAP原则, Redis三种集群方式中其中两种方式

一、问题引入 之前的几篇文章一直写的都是基于单机、或者单节点,或者单实例,那么他会有什么问题呢? 1:单点故障 2:容量有限 3:压力(性能) 如何解决? 如何分别解决上面三个独立的问题?有没有整合方案? 二、解决问题 AKF:描述的是XYZ三个轴,分别对技术的一种拆解 AKF: x:全量、镜像 y:业务、功能 z:优先级、逻辑再拆分 1、解决单点故障问题(X轴) 1、如果只有一台实例的......