自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ylx1066863710的博客

菜鸟上线,请多多指教

  • 博客(65)
  • 资源 (3)
  • 收藏
  • 关注

原创 高性能MySQL-创建高性能索引

高性能MySQL第五章创建高性能索引的读书笔记

2022-11-27 21:46:42 541 1

原创 高性能 MySQL - 第六章 查询性能优化

最近阅读MySQL高性能,略有收获,好记忆不如烂笔头,记录一下。本期笔记主要是围绕高性能MySQL第六章查询性能优化。

2022-11-19 12:01:13 679

原创 Redis集群

本文主要对redis集群扩展性做了简要介绍与梳理

2022-08-09 21:31:14 528

原创 Java多线程7种创建方式

Java多线程7种创建方式

2022-06-06 01:39:39 218

原创 Spring Boot拦截器(Interceptor)详解

spring interceptor

2022-05-15 22:13:18 17864 1

原创 Springboot文件上传接口,一直报Required request part ‘zipFile‘ is not present的错误

最近升级了Springboot的版本,在代码没有任何改动的情况下上传接口抛出了Required request part 'zipFile' is not present的异常。接口如下: @ApiOperation(value = "上传文件") @PostMapping(value = "/checkProcess", consumes = "multipart/form-data") public PlainResult checkProcess(@ApiParam(v

2021-10-08 15:46:41 1224 1

原创 Redisson time out解决

最近在项目启动的时候发现redis server response timeout (3000ms)的错误,如下图所示:错误原因:客户端长时间未使用,服务端会断开解决办法: redisson链接初始化新增连接心跳的配置在application.properties 中新增配置spring.redis.pingConnectionInterval=1000在redisson配置中新增此配置,重启就OK @Value("${spring.redis.host}") private

2021-06-19 17:22:59 8076

原创 接口耗时优化与cpu飙高解决

最近突然接到上游业务侧通知,其中一个核心接口rt升高,最高耗时达到了15s左右,上游业务受到影响,于是开启了接口优化之路。优化思路梳理接口逻辑并加缓存梳理代码发现该接口依赖了很多其他接口数据。于是对各个接口耗时进行了分析, 将耗时top5的接口全部梳理出来。让接口人自己对接口优化, 但是一般由于排期资源等,可能一时半会没有资源。与接口人确认接口数据的实效性,确定接口是否可以加缓存以及缓存时间对数据影响。于是对接口中人员组织的信息等变化频率不高的接口加缓存, 如果缓存中取不到数据在调接口或者从数据

2021-06-12 18:26:45 3835 2

原创 Spring @Configration和@Bean注解

Spring @Configration和@Bean注解在面试常见场景Q: spring中,类上加不加@Configuration注解,有什么区别?A: 当某个类上有@Configuration注解的时候,可以在这个类中使用@Bean注解向spring容器中注册bean;如果不加@Configuration注解,不能通过@Bean注解注册bean。Q: 你确定不用@Configuration注解,不能通过@Bean注解来注册bean?A: 看着面试官,犹豫了10秒钟,说:不加@Configurat

2021-05-31 23:41:10 619 5

原创 Spring 注解 @Qualifier 详细解析

1. 概述今天带你了解一下 Spring 框架中的 @Qualifier 注解,它解决了哪些问题,以及如何使用它。我们还将了解它与 @Primary 注解的不同之处。2. 痛点使用 @Autowired 注解是 Spring 依赖注入的绝好方法。但是有些场景下仅仅靠这个注解不足以让Spring知道到底要注入哪个 bean。默认情况下,@Autowired 按类型装配 Spring Bean。如果容器中有多个相同类型的 bean,则框架将抛出 NoUniqueBeanDefinitionExcept

2021-05-31 20:31:23 1437 2

原创 MySql8.0的链接问题

今天启动项目的时候, MySql的链接突然报了一个错Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure, 具体如下:The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at

2021-05-10 01:36:32 1415

原创 消息队列之RocketMQ

RocketMQ 是阿里开源的消息中间件,基于发布和订阅模型, 它是一个开源的分布式消息传递和流式数据平台.一、RocketMQ架构NameServiceNameServer是一个几乎无状态节点, 可集群部署, 节点之间无任何信息同步。管理broker: broker服务器启动时会注册到NameServer上,并且两者之间保持心跳监测机制, 从而保证NameServer知道broker的存活状态;路由信息管理: 每一台NameServer都存有全部的broker集群信息和生产者/消费者客户端的

2021-03-02 20:36:09 291 1

原创 redis实现分布式锁

分布式锁的实现方式,

2021-02-28 12:49:37 325

原创 HashMap和HashTable的联系与区别

1. 安全性HashMap是线程不安全的, 而hashTable是线程安全的; HashMap的性能会高于HashTable, HashTable主要用Synchronized关键字实现线程同步;2. key是否可以为nullHashMap的key允许为null, 但是不建议这么使用. 当HashMap中的key为null时,总是存储在table数组的第一个节点上; HashTable 的key不允许为null;3. 继承了什么? 实现了什么?HashMap继承了AbstractMap, Hash

2021-02-20 21:03:27 280

原创 Java基础总结

JVM、JRE和JDK的关系JVM、JRE和JDK关系, 首先上图:JVMjava虚拟机: Java Virtual Machine(JVM). Java程序需要运行在虚拟机上, 不同的平台有自己的虚拟机, 因此Java语言可以实现跨平台.JREJava Runtime Environment包括Java虚拟机和Java程序所需的核心类库等。核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包

2021-02-07 01:39:59 559 4

原创 Solid原则

solid原则简介缩写全称中文SThe Single Responsibility Principle单一职责原则OThe Open Closed Principle开放封闭原则LLiskov Substitution Principle里氏替换原则IThe Interface Segregation Principle接口分离原则DThe Dependency Inversion Principle依赖倒置原则单一职责原则一个类只

2021-02-04 22:46:38 232

原创 Mysql三大日志-binlog、redo log和undo log

日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和undo log),本文接下来会详细介绍这三种日志。binlogbinlog用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。binlog是mysql的逻辑日志,并且由Server层进行记录,使用任何存储引擎的mysql数据库都会记录b

2021-01-30 00:39:01 327 2

原创 mysql事务和锁

众所周知,事务和锁是mysql中非常重要功能,同时也是面试的重点和难点。本文会详细介绍事务和锁的相关概念及其实现原理,相信大家看完之后,一定会对事务和锁有更加深入的理解。什么是事务在维基百科中,对事务的定义是:事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务的四大特性事务包含四大特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)(ACID)。原子性(Atomicity)

2021-01-29 17:14:19 122

原创 RockMQ消息的储存

RockMQ消息的储存

2021-01-18 01:52:50 245

原创 RocketMQ架构

Namesrv用于存储Topic、Broker关系信息,功能简单,稳定性高。多个Namesrv之间相互没有通信,单台Namesrv宕机不影响其他Namesrv与集群;即使整个Namesrv集群宕机,已经正常工作的Producer,Consumer,Broker仍然能正常工作,但新起的Producer, Consumer,Broker就无法工作。作者:激情的狼王链接:https://www.jianshu.com/p/015a16347640来源:简书著作权归作者所有。商业转载请联系作者获得授权

2021-01-17 22:33:59 137

原创 RocketMQ的作用与场景

笔者redis学习相关笔记如下: 欢迎阅读内容连接Redis高性能https://blog.csdn.net/ylx1066863710/article/details/111468140Redis持久化https://blog.csdn.net/ylx1066863710/article/details/111475668redis高可靠之redis主从模式https://blog.csdn.net/ylx1066863710/article/details/111

2021-01-17 17:36:02 2354

原创 redis缓存雪崩、击穿、穿透

上几篇笔者描述了reids持久化机制、redis高性能、redis高可靠之主从模式以及redis高可靠之哨兵模式. 本期主要介绍缓存雪崩、击穿、穿透等. 废话不多说, 直接上菜:Q: 为什么会出现缓存异常?A: 缓存异常概括来说主要分为四种:缓存数据与数据库数据一致性;缓存雪崩: 指大量的应用请求无法在 Redis 缓存中进行处理,紧接着,应用将大量请求发送到数据库层,导致数据库层的压力激增。缓存雪崩一般由两个原因导致, 应对方案也有所不同.缓存击穿: 缓存击穿是指,针对某个访问非常频繁的热点数

2020-12-28 02:08:16 214 2

原创 Redis高可靠之哨兵集群

上一篇, 笔者描述了redis的高可靠之从主模式, 本章笔者继续讲解redis高可靠之哨兵模式, 为啥这么分呢? 上图见分晓:废话不多说, 直接上菜!Q: 笔者, 小菜有点懵圈, redis为啥需要哨兵, 这个哨兵主要作用是啥?A: 在主从模式下, 如果从库跪了, 客户端可以继续向其他从库发送请求, 进行相关的操作, 但是如果主库跪了, 就无法向主库中写数据, 主库中的数据也无法同步到从库. 对于高可靠的集群来说, 肯定是不可取的. 因此需要有一个角色来做如下相关的事情:监控: 监空主库是否跪了

2020-12-27 21:14:38 176

原创 redis高可靠之redis主从模式

上两章笔记分享了redis高性能和redis持久化相关的笔记, 本文笔者将继续介绍redis高可靠相关内容, 如有不足指出欢迎留言指正.本文还是采用AQ方式记录, 废话不多说, 开始上菜.Q: 文章的标题为redis高可靠性, 那Redis 具有高可靠性具体是什么意思?A : 高可靠至少有两层含义:数据尽量少丢失;服务尽量少断;上一章提到了AOF和RDB的持久化方式保证了前者; 对于后者redis的做法是增加冗余的副本; 将一份数据同时保存在多个实例上。即使有一个实例出现了故障,需要过一

2020-12-27 15:51:00 225

原创 epoll详细工作原理

开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。[cpp] view plaincopyint epoll_create(int size); int epoll_ctl

2020-12-21 21:50:43 1931

原创 redis的AOF和RDB

上文介绍了redis的高性能, 本文将继续介绍redis高可靠性, 本文继续讨论redis的高可靠性Q: redis如何保障高可靠性?A:AOF(Append Only File)日志和RDB(Redis Database)快照持久化机制;采用主从库的容灾机制;哨兵机制;Q: redis为什么进行持久化?A: redis作为缓存时, 把后端数据库中的数据存储在内存中, 这样读取数据的速度非常快, 但是一旦服务器宕机,内存中的数据将全部丢失, 因此需要将缓存中数据进行持久化, 通常持久化的方

2020-12-21 19:08:17 400

原创 redis高性能

任何系统设计都会有一些取舍, redis也不例外, 本文主要从redis的高性能、高可靠、高可扩展中一些取舍做了一些小结, 采用的形式为QA方式, 具体如下:高性能Q: redis的高性能体现在哪些方面?A:基于内存读写. Redis 的大部分操作在内存上完成,再加上它采用了高效的数据结构,例如哈希表和跳表,这是它实现高性能的一个重要原因。采用单线程, 避免线程线程上线文切换引起资源消耗, 以及相比多线程而言, 单线程不需要对共享资源进行加锁处理, 避免多线程对共享资源竞争导致性能消耗;采用非

2020-12-21 14:43:17 323 2

原创 一致性哈希算法

在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下这个经典的分布式缓存的应用场景。场景描述假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在,有3万张图片需要缓存,我们希望这些图片被均匀的缓存到这3台服务器上,以便它们能够分摊缓存的压力。也就是说,我们希望每台服务器能够缓存1万张左右的图片,那么,我们应该怎样做呢?如果我们没有任何规律的

2020-12-17 22:39:02 89 2

原创 理解Java中的弱引用

不久之前,我面试了一些求职Java高级开发工程师的应聘者。我常常会面试他们说,“你能给我介绍一些Java中得弱引用吗?”,如果面试者这样说,“嗯,是不是垃圾回收有关的?”,我就会基本满意了,我并不期待回答是一篇诘究本末的论文描述。然而事与愿违,我很吃惊的发现,在将近20多个有着平均5年开发经验和高学历背景的应聘者中,居然只有两个人知道弱引用的存在,但是在这两个人之中只有一个人真正了解这方面的知识。在面试过程中,我还尝试提示一些东西,来看看有没有人突然说一声“原来是这个啊”,结果很是让我失望。我开始困惑,为

2020-12-17 20:09:24 74 2

原创 JDK基础--ThreadLocal原理分析与使用场景

ThreadLocal原理分析与使用场景一、什么是ThreadLocal变量ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。这里有几点需要注意:因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。这是也是 ThreadLocal 命名的由来。既然每个 Thread 有自己的实例副本,且其它 Thread 不可访问,那就不存在多线程间共享的问题。ThreadLocal 提供了线程本地的

2020-12-17 19:51:15 95

原创 深入理解 RPC 之序列化篇 --Kryo

一年前,笔者刚刚接触 RPC 框架,从单体式应用向分布式应用的变革无疑是让人兴奋的,同时也对 RPC 背后到底做了哪些工作产生了兴趣,但其底层的设计对新手而言并不是很友好,其涉及的一些常用技术点都有一定的门槛。如传输层常常使用的 netty,之前完全没听过,想要学习它,需要掌握前置知识点 nio;协议层,包括了很多自定义的协议,而每个 RPC 框架的实现都有差异;代理层的动态代理技术,如 jdk 动态代理,虽然实战经验不多,但至少还算会用,而 cglib 则又有一个盲区;序列化层倒还算是众多层次中相对简单的

2020-12-17 16:34:37 754

原创 MySQL优化:如何避免回表查询?什么是索引覆盖?

数据库表结构:create table user ( id int primary key, name varchar(20), sex varchar(5), index(name))engine=innodb;select id,name where name='shenjian'select id,name,sex where name='shenjian'多查询了一个属性,为何检索过程完全不同?什么是回表查询?什么是索引覆盖?如何实现索引覆盖?

2020-12-16 21:29:25 100

原创 MySql锁和MVCC介绍

四种隔离级别性能与数据一致性的权衡SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。1. Read Uncommitted(读取未提交内容)在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。2. Read Committed(读取提交内容)这是大多数数据库系统

2020-12-16 17:52:13 171

原创 MySQL 事务隔离级别和锁

事务及其特性数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务的使用是数据库管理系统区别文件系统的重要特征之一。事务拥有四个重要的特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),人们习惯称之为 ACID 特性。下面我逐一对其进行解释。IBM Compose for MySQLIBM Cloud 上提供的 Compose for MySQL 数据库服务可以帮助您更好地

2020-12-16 15:07:48 99

原创 redis面试

文章目录概述什么是RedisRedis有哪些优缺点为什么要用 Redis /为什么要用缓存为什么要用 Redis 而不用 map/guava 做缓存?Redis为什么这么快数据类型Redis有哪些数据类型Redis的应用场景持久化什么是Redis持久化?Redis 的持久化机制是什么?各自的优缺点?如何选择合适的持久化方式Redis持久化数据和缓存怎么做扩容?过期键的删除策略Redis的过期键的删除策略Redis key的过期时间和永久有效分别怎么设置?我们

2020-12-16 01:14:04 426

转载 Java内部类以及使用场景

所谓内部类,即定义在另一个类中的类。那么,为什么会有内部类这个概念,他的使用场景又是什么呢?首先,来看一下内部类的特点:1. 它体现了一种代码的隐藏机制和访问控制机制,内部类与所在外部类有一定的关系,往往只有该外部类调用此内部类,所以没有必要专门用一个Java文件存放这个类。 public class Outer {  private int num;   private class Inner {    private int num;  }}一般的类是不允许用private修饰符

2020-12-15 19:14:36 4494

原创 数据库分库分表

数据库分库分表1.1. 前言1.1.1. 名词解释1.2. 数据库架构演变1.3. 分库分表前的问题1.3.1. 用户请求量太大1.3.2. 单库太大1.3.3. 单表太大1.4. 分库分表的方式方法1.4.1. 垂直拆分1.4.2. 水平拆分1.5. 分库分表后面临的问题1.5.1. 事务支持1.5.2. 多库结果集合并(group by,order by)1.5.3. 跨库join1.6. 分库分表方案产品1.7. 为什么不建议分库分表1.8. 参考数据库分库分表.

2020-12-15 01:14:12 145

原创 使用try-with-resources优雅关闭资源

你还在使用try-catch-finally关闭资源吗,如果是,那么就有点out了。皮皮甜手把手教你使用JDK7引用的try-with-resourceJDK7之前资源的关闭姿势:/** * jdk7以前关闭流的方式 * * @author hetiantian * */public class CloseResourceBefore7 { private static final String FileName = "file.txt"; public static voi

2020-12-14 21:27:00 146

原创 联合索引及最左匹配原则

上一篇文章《MySQL索引那些事》主要讲了MySQL索引的底层原理,且对比了B+Tree作为索引底层数据结构相对于其他数据结构(二叉树、红黑树、B树)的优势,最后还通过图示的方式描述了索引的存储结构。但都是基于单值索引,由于文章篇幅原因也只是在文末略提了一下联合索引,并没有大篇幅的展开讨论,所以这篇文章就单独去讲一下联合索引在B+树上的存储结构。本文主要讲解的内容有:联合索引在B+树上的存储结构联合索引的查找方式为什么会有最左前缀匹配原则在分享这篇文章之前,我在网上查了关于MySQL联合索引在B+

2020-12-14 10:43:33 424

原创 聚簇索引与非聚簇索引

通俗点讲聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,myisam通过key_buffer把索引先缓存到内存中,当需要访问数据时(通过索引访问数据),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,这也就是为什么索引不在key buffer命中时,速度慢的原因澄清一个概念:innodb中,在聚簇索引之上创建的索引称之为辅助索引,辅助索引访问数据总是需要二次查找,非聚簇索引都是辅助索引,像复合索引、前缀索引、唯

2020-12-13 21:27:42 106

TCP_IP协议

tcp/ip协议基础,非常适合网络初学者,以及想要深入理解网络的人

2018-05-08

ffmpeg filter过滤器基础实例以及全面解析

ffmpeg filter过滤器基础实例以及全面解析,pdf版,内容丰富,便于理解

2018-05-07

centos6.5 rpm安装nfs服务器

> 1.rpm -ivh keyutils-libs-1.4-4.el6.x86_64.rpm > 2.rpm -e --nodeps keyutils-libs-1.4-5.el6.x86_64 > 3. rpm -ivh keyutils-libs-1.4-4.el6.x86_64.rpm > 4. rpm -ivh keyutils-1.4-4.el6.x86_64.rpm > 5. rpm -ivh libevent-1.4.13-4.el6.x86_64.rpm > 6. rpm -ivh libgssglue-0.1-11.el6.x86_64.rpm > 7.rpm -ivh rpcbind-0.2.0-9.el6.x86_64.rpm > 8. rpm -ivh nfs-utils-lib-1.1.5-4.el6.x86_64.rpm nfs-utils-1.2.3-26.el6.x86_64.rpm

2017-12-25

空空如也

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

TA关注的人

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