自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Spring-5 常见的后置处理器

bean后置处理器

2022-11-24 13:30:08 738

原创 Spring-4 Bean的生命周期

bean生命周期

2022-11-12 11:33:16 150

原创 Spring-3 ApplicationContext的实现

ApplicationContext的实现

2022-11-11 19:02:34 534

原创 Spring-2 BeanFactory的实现

BeanFactory的实现

2022-11-11 16:27:00 247

原创 Spring-1 初识BeanFactory与ApplicationContext

初识BeanFactory与ApplicationContext

2022-11-10 20:54:52 104

原创 mysql学习

实际数据在磁盘上是如何存储的一行数据在磁盘文件里存储的时候,实际上首先会包含自己的变长字段的长度列表,然后是NULL值列表,接着是数据头,然后接着才是真实数据比如有一行数据是“jack NULL m NULL xx_school”,那么他真实存储大致如下所示:0x09 0x04 00000101 0000000000000000000010000000000000011001 jack m xx_school刚开始先是他的变长字段的长度,用十六进制来存储,然后是NULL值列表,指出了谁是N...

2022-01-27 11:16:53 310

原创 RocketMQ思维导图

RocketMQ思维导图

2021-07-27 17:48:24 204

原创 Redis思维导图

Redis思维导图

2021-07-27 17:47:49 72

原创 Mysql思维导图

Mysql思维导图

2021-07-27 17:47:07 104

原创 消息中间件对比

Kafka首先Kafka的吞吐量几乎是行业里最优秀的,在常规的机器配置下,一台机器可以达到每秒十几万的QPS,相当的强悍。Kafka性能也很高,基本上发送消息给Kafka都是毫秒级的性能。可用性也很高,Kafka是可以支持集群部署的,其中部分机器宕机是可以继续运行的。但是Kafka比较为人诟病的一点,似乎是丢数据方面的问题,因为Kafka收到消息之后会写入一个磁盘缓冲区里,并没有直接落地到物理磁盘上去,所以要是机器本身故障了,可能会导致磁盘缓冲区里的数据丢失。而且Kafka另外一个比较大的缺点,就是

2021-07-22 14:52:16 123

原创 redis学习笔记-redis cluster

学习课程连接基于儒猿redis课程笔记的记录搭建redis clusterredis cluster,提供了多个master,数据可以分布式存储在多个master上; 每个master都带着slave,自动就做读写分离; 每个master如果故障,那么久会自动将slave切换成master,高可用redis cluster的基本功能,来测试一下1、实验多master写入 -> 海量数据的分布式存储你在redis cluster写入数据的时候,其实是你可以将请求发送到任意一个master上去

2021-07-20 13:05:25 547

原创 redis学习笔记-缓存雪崩

相对来说,考虑的比较完善的一套方案,分为事前,事中,事后三个层次去思考怎么来应对缓存雪崩的场景1、事前解决方案发生缓存雪崩之前,事情之前,怎么去避免redis彻底挂掉redis本身的高可用性,复制,主从架构,操作主节点,读写,数据同步到从节点,一旦主节点挂掉,从节点跟上双机房部署,一套redis cluster,部分机器在一个机房,另一部分机器在另外一个机房还有一种部署方式,两套redis cluster,两套redis cluster之间做一个数据的同步,redis集群是可以搭建成树状的结构的

2021-07-20 13:05:17 55

原创 redis学习笔记-数据分布算法

学习课程连接基于儒猿redis课程笔记的记录hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法用不同的算法,就决定了在多个master节点的时候,数据如何分布到这些节点上去,解决这个问题1、redis cluster介绍redis cluster(1)自动将数据进行分片,每个master上放一部分数据(2)提供内置的高可用支持,部分master不可用时,还是可以继续工作的在redis cluster架构下,每个r

2021-07-20 13:04:59 200

原创 redis学习笔记-哨兵

学习课程连接基于儒猿redis课程笔记的记录基础知识1、哨兵的介绍sentinal,中文名是哨兵哨兵是redis集群架构中非常重要的一个组件,主要功能如下(1)集群监控,负责监控redis master和slave进程是否正常工作(2)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员(3)故障转移,如果master node挂掉了,会自动转移到slave node上(4)配置中心,如果故障转移发生了,通知client客户端新的master地址哨兵本身也是分

2021-07-20 13:04:48 107

原创 redis学习笔记-主从,读写分离

学习课程连接基于儒猿redis课程笔记的记录redis replication以及master持久化对主从架构的安全意义1、redis replication的核心机制(1)redis采用异步方式复制数据到slave节点,不过redis 2.8开始,slave node会周期性地确认自己每次复制的数据量(2)一个master node是可以配置多个slave node的(3)slave node也可以连接其他的slave node(4)slave node做复制的时候,是不会block mas

2021-07-20 13:04:39 238

原创 redis学习笔记-持久化机制

学习课程连接基于儒猿redis课程笔记的记录持久化机制1、RDB和AOF两种持久化机制的介绍RDB持久化机制,对redis中的数据执行周期性的持久化AOF机制对每条写入命令作为日志,以append-only的模式写入一个日志文件中,在redis重启的时候,可以通过回放AOF日志中的写入指令来重新构建整个数据集如果我们想要redis仅仅作为纯内存的缓存来用,那么可以禁止RDB和AOF所有的持久化机制通过RDB或AOF,都可以将redis内存中的数据给持久化到磁盘上面来,然后可以将这些数据备份到别

2021-07-20 13:04:26 122

原创 《设计模式之美》笔记-23中设计模式总结

一、创建型设计模式创建型设计模式包括:单例模式、工厂模式、建造者模式、原型模式。它主要解决对象的创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码。1. 单例模式单例模式用来创建全局唯一的对象。一个类只允许创建一个对象(或者叫实例),那这个类就是一个单例类,这种设计模式就叫作单例模式。单例有几种经典的实现方式,它们分别是:饿汉式、懒汉式、双重检测、静态内部类、枚举。尽管单例是一个很常用的设计模式,在实际的开发中,我们也确实经常用到它,但是,有些人认为单例是一种反模式(anti-pattern).

2021-07-09 17:52:38 204

原创 《设计模式之美》笔记-设计原则

单一职责1.如何理解单一职责原则(SRP)?一个类只负责完成一个职责或者功能。不要设计大而全的类,要设计粒度小、功能单一的类。单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。2.如何判断类的职责是否足够单一?不同的应用场景、不同阶段的需求背景、不同的业务层面,对同一个类的职责是否单一,可能会有不同的判定结果。实际上,一些侧面的判断指标更具有指导意义和可执行性,比如,出现下面这些情况就有可能说明这类的设计不满足单一职责原则:类中的代码行数、函数或者属性过多;类依赖的

2021-07-07 17:34:20 56

原创 《设计模式之美》笔记-面向对象vs面向过程

1. 什么是面向过程编程?什么是面向过程编程语言?相较于面向对象编程以类为组织代码的基本单元,面向过程编程则是以过程(或方法)作为组织代码的基本单元。它最主要的特点就是数据和方法相分离。相较于面向对象编程语言,面向过程编程语言最大的特点就是不支持丰富的面向对象编程特性,比如继承、多态、封装。2. 面向对象编程相比面向过程编程有哪些优势?面向对象编程相比起面向过程编程的优势主要有三个。1、对于大规模复杂程序的开发,程序的处理流程并非单一的一条主线,而是错综复杂的网状结构。面向对象编程比起面向过程编程,更

2021-07-07 11:42:48 151

原创 《设计模式之美》笔记-封装、抽象、继承、多态

封装、抽象、继承、多态关于封装特性封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式来访问内部信息或者数据。它需要编程语言提供权限访问控制语法来支持,例如 Java 中的 private、protected、public 关键字。封装特性存在的意义,一方面是保护数据不被随意修改,提高代码的可维护性;另一方面是仅暴露有限的必要接口,提高类的易用性。关于抽象特性封装主要讲如何隐藏信息、保护数据,那抽象就是讲如何隐藏方法的具体实现,让使用者只需要关心方法提供了哪

2021-07-07 11:06:30 88

原创 Error parsing file template: Unable to find resource ‘File Header.java‘

新建class文件报错第一步:查看class模板配置是否为空如果配置正确那就是第二种情况增加一行配置-Djdk.util.zip.ensureTrailingSlash=false最后重启,完美解决!

2021-07-06 16:04:26 1442 1

原创 hashMap中的位运算

hashMap中用了大量的位运算来优化,提高效率初始化容量最大容量计算哈希桶索引使用与操作来代替取余num % length优化为num & (length - 1)length 为 2 的 n 次幂时,转换为二进制,最高位为 1,其余位为 0;length-1 则所有位均为 1。1 和另一个数进行与操作时,结果为另一个数本身,另一个数的高位被截取,结果范围为 0 ~ length - 1,和取余操作结果相等。那么桶数为什么必须是 2 的次幂?如果不为2的次幂,某一位为0,而0和

2021-07-05 16:58:33 294

原创 Linux操作学习(持续更新)

vi vimvi 文本编辑器vim可以看做vi的增强版本vim的三种模式1、正常模式:vim打开一个文件则进入普通模式2、编辑模式:按下i 进入编辑模式3、命令行模式:在这个模式下,可输入各种命令命令:vim hello.java(编辑hello.java文件,没有的话新建hello.java文件)进入普通模式i 进入编辑模式,进行文件编辑esc 退出编辑模式 进入正常模式常用命令拷贝当前行:yy拷贝向下n行:nyy粘贴:p删除当前行:dd删除n行:ndd显示行数::se

2021-07-05 11:19:20 52

原创 spring容器启动流程+循环引用

新建Appconfig类(配置扫描路径)package com.example.service.springTest;import org.springframework.beans.factory.annotation.Configurable;import org.springframework.context.annotation.ComponentScan;/** * @author lgx * @date 2021/7/1 10:06 */@Configurable@Com

2021-07-02 15:37:57 106

原创 自定义starter

基于sptingboot的自动配置,自定义一个starter使用上一篇文章创建的项目service中增加web依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>原有的Te

2021-06-29 15:37:18 62

原创 IDEA创建多Module springboot项目

IDEA创建多Module springboot项目首先创建父项目删除src目录pom中添加<packaging>pom</packaging>一个空的父项目就创建完成了,然后创建两个子项目web和serviceweb项目创建对着父项目右键创建一个springboot项目,此项目为入口,有启动类名字可以自己取由于web项目依赖于父项目,讲web的pom中依赖修改为依赖父项目,父项目的跑pom中增加spring-boot-starter-par

2021-06-29 15:36:56 1018

原创 容易忘记的面试题

哈哈哈

2021-02-03 17:40:46 80

空空如也

空空如也

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

TA关注的人

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