自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springcloud

配置中心 config 优先加载bootstrap.xml 从外部获取系统级配置项,再加载application.xml获取本地用户级配置项。系统级配置项优先级高,系统启动时如果遇到相同名称的配置,优先使用系统级的

2022-06-12 21:45:12 82

原创 redis

redis实现分布式锁加锁时注意:1、保障赋值和设置过期时间两个操作的原子性删锁时注意:1、当执行时间大于锁的自动过期时间时,有可能删除别人的锁 需要在加锁的过程中,将value设置为uuid,删之前判断一下uuid是否和自己设置的一致。2、保障判断uuid和删除锁两个操作的原子性实现:加锁时:set key uuid nx ex 过期时间解锁时:lua脚本判断uuid并删除锁至于代码没执行完就自动释放锁的情况,可以考虑使用...

2022-06-02 10:54:08 69

原创 JAVA基础篇整理

JAVA线程池创建类:new ThreadPoolExcutor(…)核心参数:int corePoolSize 核心线程数int maximumPoolSize 最大线程数long keepAliveTime 存活时间TimeUnit unit 存活时间单位BlockingQueue workQueue 任务队列ThreadFactory threadFactory 线程工厂RejectedExecutionHandler handler 拒绝策略流程当执行一个任务,首先判断核心线

2022-04-07 09:02:06 405

原创 大数据相关重点整理

https://blog.csdn.net/daodaodaoge/article/details/123989393?spm=1001.2014.3001.5502

2022-04-07 08:39:45 1557

原创 ES重点整理

分片数制定每个分片占用的硬盘容量不超过 32G,如果索引的总容量在 500G 左右,那分片大小在 16 个左右即可;一般都设置分片数不超过节点数的 3 倍;推迟分片分配对于节点瞬时中断的问题,默认情况,集群会等待一分钟来查看节点是否会重新加入,如果这个节点在此期间重新加入,重新加入的节点会保持其现有的分片数据,不会触发新的分片分配。这样就可以减少 ES 在自动再平衡可用分片时所带来的极大开销。通过修改参数 delayed_timeout ,可以延长再均衡的时间...

2022-04-06 14:31:51 1838

原创 kafka重点总结

kfaka@TOC欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行

2022-04-03 17:35:40 2178

原创 2021-01-04 juc &jdk1.8

jucvolatile关键字:jmm中每个线程会把主存中的数据拿到自己的缓存中,造成个个线程间数据不一致,不可见,volatile保证了一个线程修改了主存的数据,会通知其他线程重新获取。防止重排,在volatile修饰的语句前后设置内存屏障,防止CPU指令重排,例子:双重判空懒汉单例模式,因指令重排可能会制造出未初始化完全的对象,造成代码错误。synchronized关键字:锁升级机制:默认是偏向锁,只有一个线程在运行,来线程竞争时,转为轻量级锁(cas自旋锁),自旋一定时间或次数时,省级为重量级锁(

2021-01-04 20:08:14 97

原创 2021-01-04 开年第一篇 MySQL

MySQL存储引擎:myisam innodb区别:innodb支持行锁,支持事务事务涉及问题脏读:事务a读到事务b未提交的数据不可重复读:事务a读到事务b提交修改的数据幻读:事务a读到事务b提交增加的数据事务隔离级别来解决以上问题...

2021-01-04 19:35:26 76

原创 2020-11-27 activeMQ 2

2020眼看着就结束啦,这一年的目标实现了吗,觉得自己进步了吗。嗯,不要认输activeMQ助记笔记2大层次 上可分为一下几点jms规范生产者 和 消费者 理解springboot 整合持久化高可用集群高级特性持久化:默认kahadb,leveldb是趋势,企业用jdbc持久化比较多kahadb存储目录结构,jdbc自动创建表结构高可用集群:zookeapper+leveldb3个节点以上,zookeapper也需要是集群高级特性:异步投递(正常生产者将消息,发送到broke

2020-11-27 08:17:36 50

原创 2020-11-10 activeMQ

mq的思想源于大量耗时的操作,在后台却又不需要实时响应,这种时候,诞生了mq,它是解决两个系统间异步,解耦合的相互通信,例如订单系统和库存系统。用户下单后,订单系统 将下单信息提交消息队列,直接返回响应用户下单成功,库存系统自己慢慢拿订单信息处理库存。jms规范:获取链接工厂,创建链接,创建session会话,创建目的地(队列或主题)创建生产者和消费者,发送和接受信息,关闭链接jms是JAVAEE技术规范体系中的一个,里面还有jdbc,servlet,jsp等等...

2020-11-10 19:07:11 64

原创 2020-11-09 jvm 垃圾回收器

11

2020-11-09 19:15:08 107

原创 2020-11-03 jvm 垃圾回收

垃圾回收分为标记阶段和回收阶段标记算法有可达性分析算法,引用计数算法引用计数算法解决不了循环引用问题,容易造成内存泄露。可达性分析算法解决了循环引用问题,一般将堆以外的数据当作根,比如栈桢里的局部变量,方法区里的常量池...

2020-11-03 18:32:38 58

原创 2020-11-03 字符串

jdk 8中string类中的char[]变成了bytenew string(“123”)创建了两个对象,第一个在堆空间中,第二个在字符串常量池中(也在堆里)。new string(“12”)+new string(“3”)中创建了几个对象,看源码,new string两个+号 new stringbuild, 常量池里12 一个,3一个,stringbuilder调用tostring方法 也会创建一个new string 但这时候常量池里并没有123 你说乱不乱?这时候调用inter()方法,

2020-11-03 18:22:38 79

原创 2020-10-22 JVM 执行引擎

执行引擎将字节码转变为汇编语言,再转换为机器语言执行hootspot虚拟机执勤引擎分为两部分,解释器,和jit编译器(及时编译器),解释器一行一行解释执行,即时编译器将热点代码直接编译成机器语言放到方法区中。一个像烤鸭,一个像上烤鸭前的小凉菜,哈哈哈哈哈。...

2020-10-22 13:39:42 55

原创 2020-10-22 JAVA线程

线程有三种创建模式继承thread类,重写run方法,实现runable接口,重写run方法,实现callable方法,重写call方法。第三种有返回值,如果要获取返回值,主线程会被阻塞。线程的状态 new创建,start 就绪,run运行,sleep阻塞,运行结束关闭。syncronised关键字就是让线程排队,加载类上,调用此类方法都要排队,加在方法上,锁为此类当前对象,在代码块中,锁指定位多个线程运行时共用的对象即可。死锁:一线程 拿到a对象锁不释放,二线程拿到b对象锁不释放,这时候一线程又想拿

2020-10-22 13:29:48 51

原创 2020-10-22 JAVA SE学习 IO流

前段时间写一个模板导出功能,对于io流真的是越看越不顺眼,总感觉它不是我朋友,需要深度交流一下。io流 ,就是数据从一端到另一端传输的抽象概念。一般相对于内存而言,进内存叫做读,出内存叫做写。从读写数据单位来分,又可分为字节流和字符流(word字符流读不了),字节流是万能的,字符流只能读写文字。重点记住fileinputstream和fileoutputstream,懂一种,其他都动懂啦。read(byte[])方法每次读取数据放到byte数组中,第二次读的时候会覆盖上次读的数据,所以再复制文件时,每次读

2020-10-22 08:00:25 67 1

原创 2020-09-17 方法区

方法区 jvm的一个概念,落地实现是永久代和元空间jdk8以前是永久代,8以后是元空间,用的本地内存。方法区主要就是存储一些类信息,class文件里的东西,被类加载器加载后,都会变成数据存到方法区jdk6的时候 静态变量存在永久代7的时候,字符串常量和静态变量存在堆8的时候,元空间替换永久代,字符串和静态变量还是在堆...

2020-09-17 18:51:12 59

原创 2020-08-18 JVM 堆

堆,个个线程共享区,共享,就存在着线程安全问题。gc的主要作用域就是堆。堆分为三部分 年轻代,老年代(前两者默认比例1:2),永久代(8以后叫元空间)。年轻代又分为伊甸园区(圣经里亚当和夏娃创造人类的地方),幸存者1区,幸存者2区。默认占比8:1:1参数设置 堆的大小 -Xms -Xmx当伊甸园区满的时候,会触发monir gc,当老年代满的时候会触发majir gc,full gc是年轻代,老年代,方法区都回收7以后jvm默认开启逃逸分析,只在方法内用到的对象,会分配在栈中,执行效率高,不用gc

2020-08-18 07:55:42 100

原创 2020-08-07 jvm 栈

jvm 类加载系统学完了,关键词:双亲委派过渡:pc寄存器,存储执行引擎要执行的下一条指令地址。栈:线程独有,一个线程一个。栈中已栈桢为单位,一个方法对应一个栈桢。设置栈的大小:...

2020-08-07 07:52:33 90

原创 2020-07-27 redis笔记

redis学完了,学了两遍,看不同的人讲课,感觉大家对于redis的重点都在五种数据类型上。今天记录一下redis的事务,主从复制,哨兵模式,和redis集群redis事务,就是一次性批量执行多条命令,multi开启事务 exec执行事务,执行期间如果有执行错误,事务不会回滚,但是如果在编译期间就出错(比如命令输错了,找不到)那整个事务不会执行...

2020-07-27 08:05:22 60

原创 SpringBoot集成Redis 启动报错

SpringBoot启动报错:Field redisTemplate in com.test.redis.controller.TestController required a bean of type ‘org.springframework.data.redis.core.RedisTemplate’ that could not be found.报错信息:容器中没有找到RedisTemplate????按理说springboot应该帮我们注入了啊,赶紧看一眼自动配置类:RedisAutoCon.

2020-07-10 10:05:58 1926

原创 2020-07-08 redis

喜欢的人,不喜欢你,是人生中最痛苦的事吗?看样子并不是,但是依然心很痛啊。

2020-07-08 18:34:48 89

原创 2020-06-27 tomcat

tomcat 知识巩固加强串联当一个请求过来时,被web服务器的操作系统所接收,tomcat这时需要从操作系统中把数据读取出来。操作系统提供socket接口用于发起和接收TCP链接,所以tomcat要从socket中获取数据。根据http协议,按照请求行,请求头,空行,请求体的规则解析数据。生成request对象。将request对象给容器。这时候,容器根据请求/IP 定位是哪个host。根据/项目名 定位是哪个context。根据/URL 定位是哪个servlet。容器的内部结构大致怕表

2020-06-27 12:14:11 118

原创 2020-06-23 NGINX整理

又开始了在家办公的日子周末把nginx系统的学习了一遍,在此做一下笔记,记住多少写多少→_→nginx 有4个主要知识点需要掌握:反向代理,负载均衡,动静分离,高可用。反向代理:就是客户端直接访问代理服务器,代理服务器再将请求转发给应用服务器,和正向代理的区别,正向代理需要客户端配置一个代理服务器,用户请求的地址还是应用服务器,并不是代理服务器。如何配置呢?在Server块中配置IP和Port,location块配置转发的地址即可...

2020-06-23 12:12:00 99

原创 2020-06-16 JAVA基础

反射,就是利用类加载器生成的Class对象,获取类信息,据说是框架的灵魂枚举,就是定义一些常量,可以和策略模式一起使用,策略模式就是把ifelse中的代码换成一个个实现类,但是这个模式不完美,它需要用户明确知道要调用哪个,所以,可以利用枚举的常量映射实现类,使代码自动化泛型,分为泛型类,方法,通配符...

2020-06-16 19:05:13 225

原创 2020-06-15 JVM

这周表白被拒绝了,哈哈哈哈哈哈哈哈哈哈哈呵呵呵,哎~女生的心思好像比jvm运行原理还难懂jvm 大体上分为 类加载子系统,运行时区,执行引擎,本地方法区(?)周末把类加载子系统学完了,在此做一下总结类加载子系统是干嘛的呢,其实就是将字节码文件加载到内存里整个过程分为 加载,链接,初始化第一步加载中,JAVA存在多个类加载器,有启动加载器bootstrap(c语言写的),ext(扩展类加载器),app(系统类加载器)。。。,这三种是父子关系,类加载时用的是双亲委派机制,其实就是父类先加载,加载不了

2020-06-15 07:42:21 182

原创 2020-06-10 JVM

jvm 类加载类加载过程分为三步第一步,加载:将字节码文件加载到方法区,并在内存中生成一个大的class类第二步,链接:(1)校验字节码的正确性(2)准备,给成员变量开辟内存空间,并赋值零值(3)将字节码中的符号引用变成真正的引用第三步:初始化,将类中静态变量,和静态代码块合并,生成一个clinit方法,给变量赋予正真的值...

2020-06-10 07:51:05 152

原创 2020-06-06 spring boot 和http

spring boot高级快学完了,主要就是使用spring data框架操作redis和es 再就是rabbitmq,暂时忽略。spring boot中的任务还是很好用的,异步任务,定时任务,四种注解就搞定了,这个得记住,会很方便http协议,电脑间的通信协议,其实就是数据的格式规范,分为请求信息和响应信息请求行(方法类型 请求路径 协议版本)请求头(key value)(空行)请求体(post请求时候用)响应信息:响应行响应头信息(空行)响应体...

2020-06-06 22:36:42 73

原创 2020-05-29 设计模式

适配模式解读:官方解读:将一个类的接口适配为用户期待的另一个类的接口。这句话有个误区,就是原本那个类的接口能不能满足你的业务呢,能。那用不用扩展功能呢,不用。单纯的就是在目标类组合一个源类,使用源类的方法。装饰器模式,相对于适配模式的最大区别,就是源类的方法只能满足一部分需求,需要在方法中扩展功能代码...

2020-05-29 08:01:09 90

原创 2020-05-27 设计模式

已经两天没有认真学习了,哎~鄙视自己设计模式建造者模式,当一个类的含参构造器过多时,使用适配器模式,使用对象适配器就完啦,正好符合了6大原则最后一条,使用组合代替继承

2020-05-27 07:35:58 113

原创 2020-05-25

今天是周一,阴天,昨晚看动漫看到两点,现在脑子有点混沌这个周末学习了吗,学了,学的spring boot数据访问,分为三大块,最底层的jdbc,最流行的mybatis,还有最抽象的jpa,jdbc的整合主要就是配置数据源(数据源支持哪几种看源码),切换自定义数据源,而mybatis和jpa主要就是如何使用了。jpa,一个spring data模块中的统一关系型数据库接口,除了jpa,还有面相redis和mongodb的上周学了一星期的tomcat,勉强学完了,调优这里老师讲的太差,或者说根本没办法讲,

2020-05-25 07:48:17 184

原创 2020-05-21 tomcat笔记

jvm参数配置在catalina. sh(启动类也在里边)tomcat集群,ngix和session同步问题设计模式:工厂模式(创建实现同一接口的类)单例模式(创建全局单一实例)

2020-05-21 09:09:07 145

原创 2020-05-18 tomcat笔记

周末学了两天tomcat,这里总结一下知识架构树,便于大脑记忆课程前半段分为三个大类tomcat基础tomcat架构Jaspertomcat配置最重要的是tomcat架构,脑海中要有一张图一个Server里有多个service,一个service里有多个连接器connecter和一个容器container,一个容器下有一个引擎,一个引擎下有多个主机host,一个host下有多个web项目context,一个context下有多个wapper(就是servlet)这里连接器可以抽出来成为coy

2020-05-18 08:15:24 99

原创 2020-05-15 tomcat组件疑惑,hadoop中mapreduce关键类

最近几天停止了boot的学习,发现在学boot的时候,好多东西原理都没掌握这里记录一下tomcat和hadoop的学习笔记tomcat 中catalina是核心,它的层级就是Server. xml文件,它前面应该还有一个coyote,我的疑惑就是catalina中的connecter 是不是就是coyote,coyote的组件大致就是接受TCP请求,解析http格式数据,适配request和servletresponsehadoop mapper,reducer,proller(数据分发)contex

2020-05-15 07:46:44 203

原创 2020-05-13 docker 笔记2

docker search 查询镜像(不推荐)查看官网,运行命令也要参考官网,在示例的基础上增加端口映射

2020-05-13 18:14:41 94

原创 2020-05-12 docher笔记1

docker是系统级的吗,不是。是软件级的,将软件安装配置后,打包成镜像文件,扔到docker仓库里,下次不是时候,从仓库里拿,直接启动即可,启动一个,就是一个容器

2020-05-12 07:54:49 131

原创 tomcat 笔记1

tomcat是把动态资源转成静态资源传给浏览器,整体架构 server 中有多个 service剪头 ——> service中有多个connecters和一个catalina(connecter中定义线程模型bio,nio,aio)

2020-05-12 07:50:49 126

原创 spring boot 中mvc自动配置原理

spring boot 中mvc自动配置原理springmvc原理一个请求过来到TOMCAT,tomcat找到mvc配置的dispacherservlet,将请求给了springmvc,mvc将请求先给handlermapping,获取handler和intercapter,再调用handleradapter 执行handler(也就是controller),返回modelandview,并把它交给视图解析器。mvc自动配置原理查看webmvcautoconfigration源码,可以看到有一个内部

2020-05-10 21:39:49 173

原创 spring boot 中servlet容器自动配置原理

嵌入式:要说到servlet容器配置原理,得从springboot启动开始说,运行main方法,初始化ioc容器,加载嵌入式servlet容器工厂(这时候的容器工厂类型要看autoconfigration内注入的是什么样的bean),创建完工厂对象,在赋值之前,后置处理器会将所有的嵌入式servlet容器customer获取到,排序,并调用他们的custom方法,方法里就是给容器属性赋值,最后工厂利用这些属性配置tomcat,并启动它外部容器:根据servlet3.0规范,容器会找jar包中的servle

2020-05-10 21:31:23 182

原创 Spring Boot 官方文档链接记录

https://docs.spring.io/spring-boot/docs/2.2.7.RELEASE/reference/html/spring-boot-features.html

2020-05-08 09:33:18 176

业务逻辑问题整理模板

该需求问题模板适用于项目经理,项目经理可以根据从客户那里获取的业务逻辑,进行整理,筛选,记录在该文档

2017-12-03

空空如也

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

TA关注的人

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