自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

转载 史上最全设计模式导学目录(完整版)

   圣诞献礼!           2012年-2013年,Sunny在CSDN技术博客中陆续发表了100多篇与设计模式学习相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 +  简单工厂模式),为了方便大家学习,现将所有文章的链接进行了整理,希望能给各位带来帮助!...

2022-05-23 14:34:12 362

原创 java并发编程核心技术点(持续更新)

并发编程

2021-01-04 16:15:48 606

原创 手写springIOC、AOP

手写springIOC、AOP

2020-12-18 11:07:40 2454 6

原创 Rancher v2.4.2版本内存泄漏问题解决

背景在项目上发现服务器内存剩余太小,查了查原因发现rancher占用了大部分内存,最终发现是版本bug。(项目所用rancher版本为2.4.2)解决办法1. 升级版本这是官方给的升级方法,还没试过不知道好不好用。https://docs.rancher.cn/docs/rancher2/upgrades/upgrades/_index2. 禁用仪表盘发现禁用仪表盘也可解决该问题...

2020-12-16 10:43:51 978

原创 k8s中Pod、ReplicaSet、Deployment、Service的概念

k8s基础组件一、Pod二、ReplicaSet2.1 Label(标签)2.2 Label Selector(标签选择器)三、Deployment四、Service五、总结一、PodPod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。Pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。Pod支持多种容器环境,Docker则是最流行的容器环境。简单来说k8s不想直接操作container,因为操作container的事情是docker来做的,k8s中要有自

2020-12-14 18:56:27 8290

原创 k8s集群搭建步骤(全)

k8s集群搭建一、配置要求二、版本统一三、搭建3.1 更新并安装依赖3.2 安装Docker3.3 修改hosts文件3.4 系统基础前提配置3.5 安装kubeadm、kubelet、kubectl3.6 拉取proxy/pause/scheduler等国内镜像3.7 kube init初始化master1.10 部署calico网络插件1.11 kube join1.12 再次体验Pod一、配置要求三台linux服务器,1台master节点,2台worker节点。每台服务器最少2GB内存、2核c

2020-12-10 19:01:16 5306 10

原创 记vagrant搭建centos7

前言平常经常会用到centos系统,以前基本都是使用VMware进行搭建。在了解了vagrant后,发现vagrant搭建centos系统更加简单、快捷、使用,所以就学习了如何使用vagrant和VirtualBox,这篇文章就记录下。下面的内容使用迅雷下载比较快。下载安装vagrant地址:https://www.vagrantup.com/选择对应版本。命令行执行:vagrant -v下载安装virtural-box地址:https://www.virtualbox.org/选择对应

2020-11-29 22:52:19 616 1

原创 Eureka原理以及核心代码分析

Eureka核心代码分析一、前言二、Eureka Client如何注册1. Lifecycle和SmartLifecycle一、前言我个人理解,看源码抓住主线逻辑去看就行了,没有必要把所有内容都理解,除非是你真正需要。我们看源码就是为了了解一个技术组件的原理以及它的实现方式,方便我们去定位bug和学习它们的设计思想。我们根据以下几个点,去追踪eureka的代码。二、Eureka Client如何注册正常我们把一个服务注册到eureka上只需要四步:1.新建springboot项目 2.引入依赖

2020-11-13 16:18:10 816

原创 Eureka自我保护机制逻辑及其核心代码分析

Eureka自我保护机制心跳失败的比例在15分钟之内,低于85%的节点,Eureka server会认为这个实例出现了网络故障,会直接剔除这个有问题的服务。考虑到因网络不稳定的情况,避免误删除,eureka有一个自我保护机制,如果开启了自我保护机制(默认开启):Eureka Server 不会剔除因长时间没有收到心跳数据的过期服务Eureka Server 仍然能够接收到新的服务的注册和查询numberOfRenewsPerMinThreshold:每分钟最小的续约数量expectedN

2020-11-09 19:43:08 815

原创 SpringBoot自动装配原理 & 手写SpringBoot-starter

SpringBoot自动配置原理 和 手写SpringBoot-starter前言一、注解驱动二、自动装配三、starter组件前言springboot给我的印象就是省去了繁琐的xml配置、自动装配 、微服务、starter组件等等相关内容。虽然平时也一直在用,但是具体的原理没有很深入的了解过。趁这段时间工作不忙针对性的学习了下。一、注解驱动要学习springboot首先要对相关注解有一定了解,我大致列出了以下注解,注解的作用自行百度:@Configuration@Import@Condit

2020-10-28 11:10:51 1267 2

原创 JVM:(三)JVM垃圾回收机制

系列文章目录文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy

2020-10-21 19:32:42 370 1

原创 JVM:(二)JVM运行时数据区

运行时数据区

2020-09-25 16:39:50 721

原创 JVM:(一)建立JVM大局观

官网眼中的JVMJVM是JAVA平台基石,负责屏蔽操作系统跟硬件。JVM是虚拟的计算机,拥有自己的指令集及定义了不同的运行内存来负责虚拟机的运行。JVM对JAVA的语法不感冒,只在乎class file字节码文件。JVM能够运行有效的class file的文件,是一个多语言的平台。上述解释可能太官方了,不一定能理解,我们可以看看下面这张图java语言在推行之初就打出了一个口号:Write Once,Run AnyWhere! 即一次编译到处运行。 我们把java的源文件通过javac去编译后会

2020-09-25 16:38:19 261

转载 Java并发:volatile关键字详解

概述volatile关键字可以说是Java虚拟机提供的最轻量级的同步机制,但是它并不容易完全被正确、完整地理解,以至于许多程序员都习惯不去使用它,遇到需要处理多线程数据竞争问题的时候一律使用synchronized来进行同步。了解volatile变量的语义对了解多线程操作的其他特性很有意义,在本文中我们将介绍volatile的语义到底...

2020-08-30 22:37:53 192

原创 java集合:(三)HashMap、ConcurrentHashMap源码分析以及与Hashtable、TreeMap的区别(JDK1.8)

HashMap源码分析一、1. 为什么会有HashMap一、1. 为什么会有HashMap首先当我们需要存储数据的时候,动态数组虽然能够自动扩容,但是必须在初始时刻指定初始容量。而对于那些在编译时无法确定具体的数量即动态增长的数据,就需要用到Java集合类了。对于ArrayList 和 LinkedList,还有 Vector它们都有一些缺点,要么插入删除速度慢、要么就是遍历速度慢。那么有没有一种插入、删除、遍历都比较不错的集合类呢?于是 HashMap 就出现了。HashMap 是一个散列表,它存储

2020-08-09 16:54:02 586

原创 java集合:(二)ArrayList、LinkedList、Vector源码原理分析以及FailFast机制(JDK1.8)

ArrayList、LinkedList、Vector源码原理探究以及FailFast机制一、ArrayList1. 源码解析(1)类中属性(3)核心方法一、ArrayListArrayList继承关系图1. 源码解析建议自己翻出源码对照着看。(1)类中属性public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable

2020-08-04 17:13:19 779

原创 java集合:(一)认识集合的本质、java两大集合派系的关系梳理

认识集合的本质、java两大集合派系的关系梳理一、认识集合的本质1. 集合的作用2. 为什么会有这么多不同的集合3. 三种通用数据结构的性能特点以及优劣势分析(1)数组(2)链表(3)二叉树搜索二、java两大集合派系的关系梳理一、认识集合的本质1. 集合的作用存储对象的容器2. 为什么会有这么多不同的集合java集合中底层的数据结构支持是不一样的,每一种数据结构都有各自的特点和特性,所以针对不同的数据结构在java层面展现出不同的集合类。比如 ArrayList、HashMap底层数据结构是

2020-08-02 20:37:29 1049

原创 SpringCloudStream、Spring事件监听机制、SpringCloudBus

SpringCloudStream、Spring事件监听机制、SpringCloudBus一、SpringCloudStream1.什么是SpringCloudStream2.SpringCloudStream中的几个概念3.环境搭建(基于rabbitMQ)4.group概念二、spring事件监听机制1.spring事件构成2.同步事件和异步事件3.实现用户注册后发送邮件功能三、SpringCloudBusbus自定义事件实践1.准备项目workflowadminfegin2.workflow发布事件3.

2020-08-01 19:34:03 2643

原创 Redis分布式锁(集成Redisson)

Redis分布式锁一、什么是分布式锁?二、分布式锁的使用场景。三、业务场景方式一(单机部署):方式二(单机部署使用线程锁 synchronized):方式三(集群部署使用线程锁 synchronized):方式四(集群部署使用redis锁):方式五(集群部署使用redisson):redisson介绍示例一、什么是分布式锁?要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一

2020-07-26 20:56:09 1355

volatile相关理论知识

初步认识 Volatile、从硬件层面了解可见性的本质、JMM、HappenBefore;初步认识 Volatile、从硬件层面了解可见性的本质、JMM、HappenBefore;

2020-12-17

空空如也

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

TA关注的人

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