自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程池深度解析

文章目录概述线程池优点默认线程池类型线程池构造参数线程池的运行机制方法解析参数说明executeaddWorkerWorkerrunWorkergetTaskshutdown/shutdownNow概述线程池优点减少了每个任务的调用开销,在执行大量异步任务时候提供改进的性能。限制和管理线程资源维护基本的统计信息,如多少任务已完成。默认线程池类型newCacheThreaddPool:缓存线程池,无界线程池。默认60s未使用的线程会被终止并被回收newFixedThreadPool:固定

2021-11-10 20:23:14 339

原创 JVM-内存模型

文章目录概述硬件的效率与一致性主内存与工作内存内存间交互操作Volatile关键字Long和Double的特殊规则线程概述为什么需要多任务处理计算机的运算速度与它的存储和通信子系统的速度差距太大,大量的时间花费在网络通信,磁盘IO等TPS:每秒事务处理数,代表一秒内服务端平均能响应的请求总数,可以用来衡量一个服务性能的高低好坏。硬件的效率与一致性大多数的运算任务都不可能只靠处理器的计算来完成。处理器至少要与内存交互,如读取数据,存储运算结果等。由于计算机的存储设备与处理器的计算有着几个数量级的差

2021-11-09 23:28:36 272

原创 ReetrantLock源码解析

文章目录概述源码入口非公平锁公平锁解锁概述ReetrantLock是Lock的实现类ReetrantLock可以创建公平锁,非公平锁,默认是非公平锁ReetrantLock底层结构是CAS+volatile+Node+Queue可被重入,相关代码是AQS的**getState()**方法源码入口//入口方法,作用是加锁public void lock() { sync.lock();}// sync.lock()有俩个实现,FairSync.lock 公平锁 /

2021-11-08 23:15:55 130

原创 Kafka-日志存储

文章目录日志索引偏移量索引时间戳索引日志清理日志存储高吞吐量的存储层次原因日志索引索引文件以稀疏索引的方式构造消息的索引,每当写入一定量,偏移量索引文件和时间戳索引文件分别增加一个偏移量索引项和时间戳索引项。俩个索引文件采用二分查找快速定位偏移量索引日志分段后,为每个日志对象使用ConcurrentSkipListMap来保存各个日志分段,每个日志分段的baseOffset作为key,这样可以根据指定偏移量快速定位到消息所在的日志分段时间戳索引新追加的时间戳索引项中的timestam

2021-10-08 18:14:43 76

原创 Kafka-消费者

文章目录基本概念消息投递模式消息消费位移提交再均衡多线程基本概念消费者:负责定于Topic,并从Topic拉取消息消费组:每个消费者都有对应的消费组。消息发布到Topic中,只会被投递给订阅它的每个消费组中的一个消费者​ 基于消费者-消费组的模型,可以是的Kafka在消费消息方面具有很好的伸缩性。消息投递模式点对点:每条消息只会被一个消费者使用发布订阅:一对多广播可以采用集合或者正则表达式订阅主题集合方式,以最后一次的为准正则,以最新为准,一般多用于系统之间数据复制除订阅主题外,可以

2021-10-08 18:14:10 80

原创 Kafka-生产者

文章目录基本知识发送消息的三种形式分区器拦截器原理分析整体流程元数据元数据的更新操作基本知识我们所说的消息本质是ProducerRecord中的一个value属性。除此之外,还应当包括主题,分区号,消息头部,键,消息的时间戳。建可以用来计算分区号,从而发送特定的区Producer本质是线程安全的,多线程可共享实例发送消息的三种形式发送即忘同步异步分区器如果没有指定partition,则要通过key计算,发往哪个分区默认的分区器会对key进行哈希计算来判断发往哪个分区(所

2021-10-08 18:13:48 85

原创 Kafka-基本概念

文章目录作用体系相关ZooKeeperBrokerTopicPartitionOffSetReplicaARISROSR作用削峰解耦异步体系相关基本结构是生产者-消费者模型ZooKeeper用来负责群元数据的管理控制器的选举Broker服务节点,如果单机部署kafka,也可以理解为服务实例Topic译为主题,消息以主题为单位进行归类,生产者发送消息到指定主题,消费者到指定主题去pull消息Partition译为分区,同主题密切相关。一个主题可以划分多个分区,

2021-10-08 18:13:04 63

原创 设计模式-简述

单例模式全局生成一个唯一实例对象有饿汉式,懒汉式区分工厂模式简单,工厂,抽象都是工厂模式中的细分,本质上是一样的。主要用于拆分创建对象的复杂代码,将创建交由工厂Spring的Di最基本的设计思路就是工厂模式,动态的创建复杂的Bean建造者模式提前预设好一些属性的实体构造函数原型模式深拷贝,浅拷贝基于拷贝,节省响应时间代理模式Spring的AOP的底层实现,主要是提供接口供外部调用,隐藏内部细节非业务型的附加功能开发,日志,监控等RPC也可以当作一种代理桥

2021-09-14 22:50:47 63

原创 设计模式-单例模式

文章目录概述饿汉式懒汉式懒汉式-双重检查锁懒汉式-静态内部类枚举类实现单例概述单例模式本质是生存一个全局唯一的实例对象。一般而言,唯一是标注线程内唯一。在面试提及该知识点的时候,可以扩充一下如何进程内唯一。单例模式,本身上具有俩个类型。饿汉式和懒汉式,区别在于是否延迟加载。在实现单例模式的时候,注意几个关键因素。private,static,synchronized,volatile。一般情况而言,建议使用饿汉式,即类加载时候,创建好单例对象。饿汉式public class Singlet

2021-09-08 21:54:48 75

原创 MySql-1-索引类型

文章目录索引类型B-Tree索引哈希索引空间数据索引全文索引聚簇索引覆盖索引索引:是存储引擎用于快速找到记录的一种数据结构。索引可以包含一列,也可以包含多列。多列索引的顺序尤为重要,MySql中采用最左前缀列。索引是在存储引擎层而不是在服务器层。因为索引没有统一标准,不同存储引擎的索引的工作方式也不一样。索引类型B-Tree索引一般如果没有特殊说明,则指的就是B-Tree索引。它采用B_Tree来存储数据。但实际上很多存储引擎使用的B+Tree。即每一个叶子节点都包含指向下一个下一个叶子

2021-09-06 22:52:35 62

原创 Windows下,JAVA以后台方式允许Jar包

主要是Windows下,以后台进程的方式去运行JAVA应用。用Bat去操作,主要是省事一些。启动脚本@echo off//你的jdk路径set path=D:\setup\jdk\bin//demo.jar 你自己的jar名称START "webservice" "%path%\javaw" -jar demo.jarpause停止脚本 //demo.jar 自己的jar名称,其实也可以根据端口去停止,具体百度 wmic process where (commandline

2021-01-21 19:07:05 635

原创 Spingboot中在拦截器拦截方法,操作后,报空指针异常,HandlerExecutionChain类错误。

问题叙述:写了一个拦截器,在某个方法之后,操作下数据库,但操作数据库的时候报空指针异常。追究方法是HandlerExecutionChain的triggerAfterCompletion()出错。翻阅资料,发现是注入方式有问题。原代码/** * 系统中的拦截器配置 * @author gaoxupeng */@Configurationpublic class InterceptorConfigurer extends WebMvcConfigurerAdapter { @

2020-05-24 17:26:41 766

原创 Nginx_反向代理数据库连接

近期,购买了个阿里云服务器,因此一些数据库就放到了云服务器上,但是因为是GitHub项目,为了安全起见,本地装个Nginx,来反向代理数据库连接。本次环境是Windows,但大同小异,修改配置文件即可。注意Nginx的版本,此次使用了Nginx的stream特性。这个特性应该是1.14.2版本新增的。我使用的是1.17.9版本。关于Windows下Nginx版本无缝升级的博客打开N...

2020-03-10 23:10:26 5583 1

原创 SpingBoot系列教程(四):SpringBoot+Redis

敲重点参考博客链接正文傻瓜式教程,基本复制粘贴就可以。原博客的代码注释都很详细。主要的还是RedisUtil提供的相关方法,灵活运用,自由补充。1.版本自由选择吧,注意与SpringBoot依赖关系。我这里Redis是2.2.2版本 <!--Redis--> <dependency> <groupI...

2020-03-10 21:45:01 397

原创 Redis学习(三):RDB与AOF

持久化是Redis一个重要的功能点,可以有效的避免服务器因为停电,断网等多种因素导致Redis崩溃后,及时恢复有效数据。Redsi分为俩种持久化策略,RDB与AOF。俩种持久化策略可单独配置,也可同时存在。如果只配置 AOF ,重启时加载 AOF文件恢复数据;如果同时配置了 RDB 和 AOF ,启动是只加载 AOF 文件恢复数据;如果只配置 RDB,启动是将加载 dump 文件恢复...

2020-03-08 16:46:29 115

原创 Redis学习(二):五种数据结构及相关命令

更多命令请查看官方文档。文章目录String 字符串相关命令List 列表相关命令Set 集合相关命令Hash 散jianzhi列相关命令Zset 有序集合相关命令String 字符串同编程语言中的字符串非常相似。字符串可以存储三种类型值字节串(byte string)整数浮点数相关命令命令行为get获取存储在给定键中的值set设置存储在给...

2020-03-02 23:22:22 84

原创 Redis学习(一):简要介绍及同其他数据库对比

简要介绍Redis是一个非关系型数据库(NoSql),可以存储键(Key)与5种不同类型的值(value)之间的映射。通过复制,持久化(AOF和RDB)和客户端分片等特性来满足生产环境所需。Redis是单核的。Redis与其他数据库对比Redis与MemcachedRedis支持俩种方式,AOF和RDB来持久化磁盘中,而Memcached不支持。Redis支持五种数据结构,(S...

2020-03-02 22:09:40 283

原创 SpingBoot系列教程(三):SpringBoot配置全局异常/自定义异常

与上篇日志系统相辅相成的就是异常了,这边博客主要讲述如何配置全局异常/自定义异常。相关注解ControllerAdvice:用来实现全局异常,需要定义类,添加该注解即可。处理的是Controller层异常。示例代码:@ControllerAdvicepublic class ErrorController {}因为异常处理时候很多使用JSON来进行处理,所以很多时候Cont...

2020-02-26 22:35:30 333 1

原创 SpingBoot系列教程(二):SpringBoot+Logback

推荐阅读官方文档Sping Boot使用Commons Logging来进行所有的内部日志记录,提供了Java Util Logging,Log4J2和Logback的默认配置。如果使用Logback则需要添加如下依赖<groupId>org.springframework.boot</groupId><artifactId>spring-b...

2020-02-21 22:56:10 266

原创 基于GitHub搭建一个静态简历模板

简历模板基于开源项目 https://gitee.com/itsay/resume请先确保已经创建好了一个自己GitHub名称为主体的**.github.io的存储库,如果没有请访问此链接,创建一个存储库。访问此存储库,Clone或者直接下载下来。修改index.html文件信息,这里是你想要展示的简历的主体。样式什么的可以打开项目内的assets文件夹,来进行具体调整。祝您求职顺利。...

2020-02-21 19:24:59 608

原创 SpingBoot系列教程(一):整合Mybatis-plus+Druid

特别说明MyBatis—PLus的3.0+版本对于LocalDateTime的支持有些差异,对于Druid的版本也有些要求。pom.xml文件里面的俩者的版本是我自己试验过的,可以正常使用,如果自己更换版本,出现LocalDateTime问题,请注意版本问题。代码生成工具使用的是mybatis-plus-generator,但没有完全按照官方文档来搞,本着能用就行的目的,一些地方与官方有点出...

2020-02-19 22:22:37 1144

原创 Spingboot项目启动,游览器自动打开项目。

我忘记我是参考哪篇博客了,如果我是参考您的,觉得不妥,请第一时间联系我,我进行下架之前做SSM项目的时候,启动TOMCAT的时候,成功是可以直接弹出项目首页的,是 非常的方便,最近在做SpringBoot的时候,启动却不弹出项目首页,非常的不方便,所以百度了一番,实现了项目启动,直接弹出首页。application.properties文件,添加下方配置。 #启动项目时是否自...

2020-02-19 21:32:54 662

原创 不通过服务器,使用GitHub搭建一个静态的个人网站。

创建一个新的存储库创建一个Owner+.github.io的存储库。(因为我本身已经有一个这样的存储库了,所以红色警告信息不用在意)默认配置不需要改动,直接点击下方绿色按钮 Create repository完成创建即可。创建完成之后,将项目clone到本地。git clone 项目地址项目拉去之后,在本地创建一个index.html。然后粘贴如下代码<!...

2020-02-18 20:57:55 441

原创 ArrayList源码解析

简单介绍有下标,查询效率高数组增删改方法涉及数组拷贝,效率低方法未加锁及其他同步操作.线程不安全使用频率很高,理解较为简单创建无参构造 /** * 共享的空数组实例,用于默认大小的空实例。 *我们将其与EMPTY_ELEMENTDATA区别开来,以了解添加第一个元素时需要多少空间 */ private static final Objec...

2020-01-08 21:18:22 101

原创 Windows环境下Oracle监听日志文件大于4G,导致程序连接超时。

这是一件线上事故而引发的一篇博客。事故发生于中秋假期前一天,影响了数量不详的人员。事故描述    当时正在进行一次更新,http更换成https,后因客户理智的变更需求后,暂时停止变更,回退原样。因修改了tomcat下配置文件:server.xml和web.xml。执行回滚操作。重启后发现项目重启速度巨慢,在项目重启之后,执行登录操作,响应时间过长,...

2019-09-15 21:20:08 3645

空空如也

空空如也

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

TA关注的人

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