logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

什么是 开发环境、测试环境、生产环境、UAT环境、仿真环境

开发环境:开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告。测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。生产环境:是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。可以理解为包含所有的功能的环境,任何项目所使用的环境都以这个为基础,然后根据客户的个性化需求来做调整或者修改。三个环境也

基于SpringBoot与Redis实现分布式锁

首先,使用Docker运行Redis拉取最近版本的Redis镜像:docker pull redis启动容器:docker run -d --name redis -p 6379:6379 redis:latest进入容器内部,测试存储:# docker exec -it redis redis-cli127.0.0.1:6379> set name qcyOK127.0.0.1:6379&

22张图,带你入门分布式一致性算法Raft

Raft节点的角色划分与任期在Raft中,有以下三种角色:Follower 跟随者所有节点的初始状态,内部都会有一个超时时间。对于每一个Follower,其超时时间是随机的。这个超时时间,规定了在倒计时结束后仍然收不到Leader的心跳,Follower就会转变为Candidate。为什么每个Follower的超时时间是随机的,改成一样的可以吗?不可以,相同的超时时间会造成多个Follower同时

文章图片
#分布式
SpringBoot的自动装配原理、自定义starter与spi机制,一网打尽

一、前言Spring简直是java企业级应用开发人员的春天,我们可以通过Spring提供的ioc容器,避免硬编码带来的程序过度耦合。但是,启动一个Spring应用程序也绝非易事,他需要大量且繁琐的xml配置,开发人员压根不能全身心的投入到业务中去。因此,SpringBoot诞生了,虽然本质上还是属于Spring,但是SpringBoot的优势在于以下两个特点:(1)约定大于配置SpringBoot

文章图片
#spring#java#spring boot
【JVM】虚拟机栈的五脏六腑

虚拟机栈,本身就是一个普通的栈,栈中的元素叫做栈帧。虚拟机栈是线程私有的,每有一个线程,虚拟机就会创建一个虚拟机栈,线程与虚拟机栈一一对应。线程每调用一个方法,虚拟机就会创建一个栈帧,并将此栈帧压入虚拟机栈中,当方法调用结束后,此栈帧又从虚拟机栈中弹出。线程每调用一个方法,都会起一个栈帧,因此栈帧的容量偏小,栈帧虽小,却五脏俱全。栈帧包含局部变量表、操作数栈、动态链接...

【JVM】说说java中的堆区

堆(Heap)是被虚拟机所管理的最大的一块内存区域,在堆中,会有以下一些对象:朝生夕死的小对象,蜉蝣一般大对象,例如长数组,需要大量连续的内存空间长周期对象,存活很久,很能熬因此,目前主流的JVM,利用可达性分析算法分析对象是否死亡,最后针对性地采用分代搜集算法回收死亡对象。判断对象是否死亡,可以先参考我的另外一篇文章【JAVA】如何判断对象已经死亡?堆可以分为新生代与老年代,用...

#jvm
【JVM】灵性一问——为什么用元空间替换永久代?

前言首先需要明确的是,以下我们讨论的HotSpot虚拟机,其他类型的虚拟机,例如JRockit与J9等,压根就没有永久代的概念。因此,下面所说的“虚拟机”都是HotSpot版本的。要想理解这种变化的原因,需要先理解方法区、永久代与元空间的概念与之间的关系。方法区与永久代,元空间之间的关系方法区是一种规范,不同的虚拟机厂商可以基于规范做出不同的实现,永久代和元空间就是出于不同jdk版...

深入分析AQS实现原理

简单解释一下J.U.C,是JDK中提供的并发工具包,java.util.concurrent。里面提供了很多并发编程中很常用的实用工具类,比如atomic原子操作、比如lock同步锁、fork/join等。从Lock作为切入点我想以lock作为切入点来讲解AQS,毕竟同步锁是解决线程安全问题的通用手段,也是我们工作中用得比较多的方式。Lock APILock是一个接口,方法定义...

到底了