自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (2)
  • 收藏
  • 关注

原创 04.深入pods

回调使容器能够了解其管理生命周期中的事件,并在执行相应的生命周期回调时运行在处理程序中实现的代码。流量路由控制: 当就绪探针成功时,表示该容器内部的应用程序已处于可接受请求的状态,此时kubelet会将该容器标记为“就绪”状态,Service将会将其IP地址添加到后端服务列表中,允许Service开始将网络流量转发至这个Pod。平滑过渡: 通过就绪探针,Kubernetes可以实现滚动更新或部署过程中的平滑过渡,新版本的容器在通过就绪探针验证前,不会承担任何实际流量,直到它们完全启动并做好处理请求的准备。

2025-06-05 14:50:41 925

原创 03.搭建K8S集群

是一个工具,用于快速搭建kubernetes集群,目前应该是比较方便和推荐的,简单易用kubeadm是Kubernetes 1.4开始新增的特性kubeadm init 以及 kubeadm join 这两个命令可以快速创建 kubernetes 集群一般用于本地开发、测试和学习,不能用于生产环境是一个工具,minikube快速搭建一个运行在本地的单节点的Kubernetes。

2025-06-03 14:16:41 954

原创 02.K8S核心概念

有状态服务:会对本地环境产生依赖,例如需要把数据存储到本地磁盘,如mysql、redis;无状态服务:不会对本地环境产生任何依赖,例如不会存储数据到本地磁盘,如nginx、apache;

2025-05-29 15:40:48 1366

原创 01.认识Kubernetes

K8S的特点:自我修复、弹性伸缩、自动部署和回滚、服务发现和负载均衡、机密和配置管理、存储编排、批处理。

2025-05-29 15:37:34 844

原创 查看redis是否发生swap

1.查看redis进程号$ redis-cli info | grep process_idprocess_id: 53322.进入redis所在机器的/proc目录$ cd /proc/53323.查看redis进程使用情况$cat smaps | egrep '^(Swap|Size)'Size: 584 kBSwap: 0 kBSize: 4 kBSwap: 4 kBSize: 4 kBSwap: 0 kBSize: 462044 kBSwap: 46200

2021-09-04 11:00:40 648

原创 spring5.1.x版本源码解析

本次源码解析主要包含以下几个部分:1.AnnotationConfigApplicationContext中根据@ComponentScan扫描解析包下的类,并封装成为BeanDefinition;2.AnnotationConfigApplicationContext中配置类常见注解如@Import、@Bean、@Component、@Service、@ComponentScan、@ImportResource等注解的解析流程以及细节;3.标记有@Configuration注解以及无该注解的配

2020-08-30 22:35:43 318

原创 《算法》---排序算法

算法第二章 排序冒泡排序冒泡排序的基本思想:元素两两进行比较,将大的元素向后移动,直到移动到最后,然后进行下一趟,像冒泡一样,每次都将最大的元素冒到上面实现逻辑:代码示例public class BubblingSort { public static void sort(int[] arr){ int length = arr.length; while (length>0){ for(int i=1;i<leng

2020-08-07 11:07:02 364

原创 LinkedList源码解析

LinkedList源码实际上不算复杂,底层使用了内部类Node,每个Node存储了当前节点数据,直接前驱和直接后继的引用,也就是双向链表;同时LinkedList实现了Deque接口,也就是实现了双端队列相关操作api:public class LinkedList{ transient int size = 0; /** * 记录第一个节点的索引 */ transient MyLinkedList.Node<E> first;

2020-07-03 10:42:35 200

原创 ArrayList关键代码解析

以下代码是ArrayList中关键扩容代码解释public class ArrayList{ /** * 默认初始化数组容量:10 */ private static final int DEFAULT_CAPACITY = 10; /** * 空数组(用于空实例),在实例化时如果传入的list长度为0,当调用new ArrayList(0)时,即传入的数组长度为0时,会默认 elementData=EMPTY_ELEMENTDATA .

2020-07-03 09:46:01 217

转载 HTTP1.0、HTTP1.1 和 HTTP2.0 的区别(转载)

https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A?--搬运工

2020-06-29 16:38:05 156

转载 HTTP长连接、短连接究竟是什么?(转载)

https://www.cnblogs.com/gotodsp/p/6366163.html--搬运工

2020-06-29 16:24:13 220

转载 从输入URL到页面加载发生了什么(转载)

https://segmentfault.com/a/1190000006879700--搬运工

2020-06-29 11:07:05 154

转载 两张动图-彻底明白TCP的三次握手与四次挥手(转载)

https://blog.csdn.net/qzcsu/article/details/72861891--搬运工

2020-06-29 10:44:43 7603

转载 ConcurrentHashMap实现原理及源码分析(转载)

https://www.cnblogs.com/chengxiao/p/6842045.html---搬运工

2020-06-24 17:08:48 179

转载 HashMap实现原理及源码分析(转载)

https://www.cnblogs.com/chengxiao/p/6059914.html----搬运工

2020-06-24 17:06:40 172

原创 手写动态代理--模仿jdk动态代理

为了便于理解jdk动态代理,模仿jdk动态代理的思路,模拟写一个动态代理demo,思路如下:拼接代理对象源码,使用文件流写出$Proxy.java文件 将$Proxy.java动态编译成.class文件 $Proxy.class文件动态加载到JVM内存中,产生Class对象 使用反射构造出代理对象 用户调用代理对象实现方法代理源码如下:定义接口package com.ant.myJdkProxy;/** * 接口,模拟有无返回值、有无参数多种情况方法 */public in

2020-06-14 11:32:56 191

原创 第十二章 java多线程程序的性能调优--《java多线程编程实战指南-核心篇》

java虚拟机对内部锁的优化自java6/7开始,java虚拟机对内部锁的实现进行了一些优化。这些优化主要包括锁消除、锁粗话、偏向锁以及适应性锁。锁消除锁消除是JIT编译器对内部锁的具体实现所做的一种优化,在动态编译同步块的时候,JIT编译器可以借助一种被称为逃逸分析的技术来判断同步块所使用的锁对象是否只能够被一个线程访问而没有被发布到其他线程。如果同步块所使用的锁对象通过这种分析被正是指能够被同一个线程访问,那么JIT编译器在编译这个同步块的时候并不生成synchronized所表示的锁的申请

2020-05-25 08:15:51 213

原创 第十一章 多线程编程的硬件基础与java内存模型--《java多线程编程实战指南-核心篇》

填补处理器与内存之间的鸿沟:高速缓存为了弥补处理器与主内存处理器能力之间的鸿沟,硬件设计者在主内存和处理器之间引入高速缓存,如下图所示:高速缓存是一种存取速度比主内存大而容量远比主内存小的存储部件,每个处理器都有其高速缓存。引入高速缓存后,处理器在执行内存读、写操作的时候并不直接与主内存打交道,而是通过高速缓存进行的。高速缓存相当于一个由硬件实现的容量极小的散列表,其key是一个内存地址,其值是内存数据的副本或者准备写入内存的数据。从内存结构来看,高速缓存相当于一个拉链散列表,他包含若干桶,每.

2020-05-24 11:01:21 263

原创 ArrayList扩容机制源码跟进解析

package com.diagrammatize;import java.util.ArrayList;public class ArrayListMain { public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add("1"); arrayList.add("2"); arrayList.add.

2020-05-18 10:39:07 225

原创 zookeeper源码解析

文字格式:zookeeper源码执行流程分析1.主流程 >org.apache.zookeeper.server.quorum.QuorumPeerMain.main zookeeper入口方法 >org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun 初始化zookeeper并且...

2020-03-28 14:18:56 496

原创 redis cluster、配置文件介绍等

1.在模糊匹配redis中的key时建议使用scan,而不是使用keys,因为当redis中存储的key-value非常大时,keys会查询所有的数据,性能上存在比较大的问题;scan就是利用游标,类似于我们的分页一样2.redis的键值对实际上使用的是类似于java中的hashtable的数据结构,key是通过哈希算法分布在一个数组中,3.redis单线程为什么那么快:1.单线程,无线程...

2020-03-27 17:57:52 1250

原创 ZKClient zookeeper 丢失事件 分析

在使用zkClient监听机制时,发现当代码中连续对节点的数据进行变更时,若变更之间的时间间隔比较短,则会出现事件监听丢失的情况或者监听到的事件重复的情况,本人代码如下:package com.ant.zookeeperstudy;import org.I0Itec.zkclient.IZkDataListener;import org.I0Itec.zkclient.ZkClient...

2020-03-27 13:30:01 1612

原创 linux简单介绍以及常用命令--java程序员掌握

基本网络配置VMware三种网络配置方式Bridged桥接模式(推荐):VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信,虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑。NAT网络地址转换模式:虚拟系统借助NAT的功能...

2020-03-24 08:59:44 171

转载 两台centos之间传送文件(转载)

1、用命令行的方式A,B 机上的SSH都允许root登录,B主机的IP:192.168.1.33,要把A主机上的/home/data文件夹传送到主机B上,运行命令注意:这里的scp命令,前面不能加sudo ,加上sudo后会报错。 [root@localhost Desktop]# scp /home/data root@192.168.1.33:/home/ne...

2020-03-21 11:36:05 2287

转载 HashMap的扩容因子为什么是0.75(转载)

最近在看HashMap源码,对于扩容因子=0.75感到很费解,为什么在用了75%的容量的时候就要进行扩容呢?数组中明明还有25%的空间没有使用。为什么不等到数组几乎满了(扩容因子=0.95)的时候才进行扩容?扩容因子=0.95和扩容因子=0.75有什么区别吗?首先来看一下什么是扩容因子。假设hash函数是理想的,数据会通过hash函数均匀的映射到数组上。一个数据映射到每一个桶(bucket)的概...

2020-03-20 19:56:29 4628 1

转载 redis编译报致命错误:jemalloc/jemalloc.h:没有那个文件或目录(转载)

分配器allocator, 如果有MALLOC 这个 环境变量, 会有用这个环境变量的 去建立Redis。而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的fragmentation problems 比libc。但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数,运行如下命令:m...

2020-03-15 12:00:54 441

转载 linux中wget未找到命令(转载)

在装数据库的时候发现无法使用wget命令,提示未找到命令,如图所示那是因为没有安装wget,输入命令:yum -y install wget 如下图所示,wget及其依赖将会被安装安装完成后就可以使用wget命令啦...

2020-03-15 12:00:21 1566

转载 linux下采用ps、jstack命令排查命中java应用中占用CPU高的代码(转载)

在排查服务器上的java项目出现高cpu使用的情况下从而各种百度的结果,做一个记录。一般情况下,是因为系统出现瓶颈了,才会去进行调优,而调优则要先找出项目代码中的问题,这次针对java应用占用CPU高的代码进行排查。 假设,目前有一个应用在运行过程中会导致CPU居高不下,而无法知道是哪段代码引起的,这个时候,则可以采用本篇文章说的PS命令和jstack命令进行排查命中相关的代码...

2020-03-11 10:14:42 396

原创 JVM堆内存参数设置

-Xmx:最大堆大小-Xms:初始堆大小-Xmn:年轻代大小-XXSurvivorRatio:年轻代中Eden区与1个Survivor区的大小比值(默认Eden:from Survivor:to Survivor=8:1:1)如:-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3当我们并发访问量比较,会快速产生大量的垃圾对...

2020-03-09 09:56:25 1278

原创 《MySql高级技术篇》--学习笔记

MySQL架构mysql架构图:mysql查询语句限制性from语句mysql分层以及可插拔的存储引擎连接层 服务层 存储引擎层 数据存储层sql语句:show engines; 查看当前支持的存储引擎show variables like '%storage_engine%'; 查看当前默认存储引擎MyISAM和InnoDB的区别:...

2020-03-05 21:32:56 299

转载 深入理解mysql索引底层数据结构与算法(转载)

索引到底是什么索引是帮助Mysql高效获取数据的一种数据结构索引储存在哪里和数据一样,索引以文件形式储存在硬盘上,在MyISAM储存引擎中,数据和索引文件试试分开储存的。MyISAM文件储存示意图在InnoDB中,数据和索引文件是合起来储存的,注意下图中没有了I(index)结尾的文件。InnoDB文件储存示意图后面会进一步分析为什么会这样...

2020-03-03 15:25:12 182

原创 《深入理解JVM》-java字节码-张龙

十六进制一位表示二进制的4位,也就是2的4次方=16,一位十六进制表示二进制0000~1111之间的任意值,所以两位16进制数表示一个字节(一个字节表示8位)...

2020-02-28 13:24:50 466

原创 《深入理解JVM》-类的加载-张龙

2020年2月20日 15:08:06

2020-02-27 13:00:33 385

原创 《redis深度历险》笔记

《redis深度历险》学习笔记redis基础知识,包含常见命令常用针对key的命令命令DEL key:该命令用于在 key 存在时删除 keyEXISTS key:检查给定 key 是否存在EXPIRE key seconds:为给定 key 设置过期时间,以秒计PEXPIRE key milliseconds:设置 key 的过期时间以毫秒计KEYS pattern:查找...

2020-01-17 17:20:22 618

原创 zookeeper、Paxos算法、ZAB协议、CAP理论介绍

分布式协调服务器ZokeeperZookeeper概述1.1 Zookeeper简介Zookeeper是一个开源的分布式应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于Paxos算法的ZAB协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。1.1.1功能简介(1)配置维护分布式系统中,很多服务都是部署在集群中的,即很多台服务器中部署着...

2020-01-15 14:38:36 924 1

转载 SocketChannel与ServerSocketChannel区别(转载)

(1)Socket 和ServerSocke 是一对 他们是java.net下面实现socket通信的类(2) SocketChannel 和ServerSocketChannel是一对 他们是java.nio下面实现通信的类 支持异步通信(3)服务器必须先建立ServerSocket或者ServerSocketChannel 来等待客户端的连接(4)客户端必须建立相对应的Socket或者S...

2020-01-13 18:43:09 1804

转载 Centos7开放及查看端口(转载)

1、开放端口firewall-cmd --zone=public --add-port=5672/tcp --permanent#开放5672端口firewall-cmd --zone=public --remove-port=5672/tcp --permanent#关闭5672端口firewall-cmd --reload #配置立即生效2、查看防火墙所...

2019-12-27 10:39:32 192

原创 第九章 java异步编程--《java多线程编程实战指南-核心篇》

java.util.concurrent.Executor接口是对任务执行进行的抽象,Executor接口使得任务的提交方只需要知道它调用Executor.execute方法便可以使指定任务被执行,无需关系任务执行的细节,使得任务的提交能够与任务执行的具体细节解耦,它在一定程度上能够屏蔽任务同步执行与异步执行的差异,一定程度上缩小了同步编程与异步编程的代码编写方式。工具类Executors...

2019-12-24 18:53:43 306

原创 第八章 线程管理--《java多线程编程实战指南-核心篇》

线程的未捕获异常与监控jdk1.5引入UncaughtExceptionHandler接口,当线程提前被异常终止,则会回调该接口中的方法,例:package JavaCoreThreadPatten.capter08;import java.util.Random;import java.util.concurrent.ArrayBlockingQueue;import java...

2019-12-23 18:49:31 201

原创 第七章 线程的活性故障--《java多线程编程实战指南-核心篇》

线程活性故障是由资源稀缺型或者程序自身的问题和缺陷导致线程一直处于非RUNNABLE状态,或者线程虽然处于RUNNABLE状态但是其要执行的任务却一直无法进展的故障现象。死锁如果两个或者更多的线程因相互等待对方而被永远暂停,那么我们就称这些线程产生了死锁。哲学家就餐问题一个线程在持有一个锁L1的情况下去申请另外一个锁L2,而另外一个线程也在持有一个锁L2的情况下去申请另外一个锁...

2019-12-23 12:14:51 213

zookeeper分析流程.txt

zookeeper源码执行流程。 Zookeeper是一个开源的分布式应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于Paxos算法的ZAB协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。

2020-03-28

springContext执行流程.txt

spring源码执行流程,不含spring mvc,只包含spring上下文,包含整个流程中的关键代码以及英文doc注释翻译+个人理解

2020-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除