自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nacos 启动错误:Error creating bean with name ‘user‘: Unsatisfied dependency expressed through field ‘jwt

文档中提供的密钥为公开密钥,在实际部署时请更换为其他密钥内容,防止密钥泄漏导致安全风险。密钥需要保持节点间一致,长时间不一致可能导致403 invalid token错误。

2024-04-23 21:47:31 506 1

原创 项目技术场景面试题--单点登录的实现方式、权限认证的实现方式、上传数据安全性的控制方式、日志采集的方式、查看日志的命令、生产问题的排查方式、快速定位系统瓶颈的方式

查询某一个日志行号区间:cat -n xx.log | tail -n +100 | head -n 100 (查询100行至200行的日志)筛选过滤以后,输出到一个文件:cat -n xx.log | grep “debug” >debug.txt。查询日志文件中包含debug的日志行号:cat -n xx.log | grep “debug”,通常在业务中都会有日志的记录,或者查看系统日志,或者查看日志文件,然后定位问题。2,介绍自己项目中涉及到的单点登录(即使没涉及过,也可以说实现的思路)

2024-04-16 20:31:07 782

原创 (线程池)多线程使用场景--es数据批量导入、数据汇总、异步调用;如何控制某个方法允许并发访问线程的数量;对ThreadLocal的理解及实现原理、源码解析、ThreadLocal的内存泄露问题

案例:使用JDBC操作数据库时,会将每一个线程的Connection放入各自的ThreadLocal中,从而保证每个线程都在各自的 Connection 上进行数据库的操作,避免A线程关闭了B线程的连接。在我们项目上线之前,我们需要把数据库中的数据一次性的同步到es索引库中,但是当时的数据好像是1000万左右,一次性读取数据肯定不行(oom异常,内存溢出),当时我就想到可以使用线程池的方式导入,利用。,是JUC包下的一个工具类,我们可以通过其限制执行的线程数量,达到限流的效果。

2024-04-16 18:52:23 1208 3

原创 线程池--线程池的核心参数、执行原理、常见的阻塞队列、核心线程数的确定、线程池的种类、不建议用Executors创建线程池的原因

线程池--线程池的核心参数、执行原理、常见的阻塞队列、核心线程数的确定、线程池的种类、不建议用Executors创建线程池的原因

2024-04-15 21:56:47 687 1

原创 多线程安全-- 死锁产生条件及诊断、对ConcurrentHashMap的理解、导致并发程序出现问题的根本原因(Java程序如何保证多线程的执行安全)

多线程安全-- 死锁产生条件及诊断、对ConcurrentHashMap的理解、导致并发程序出现问题的根本原因(Java程序如何保证多线程的执行安全)

2024-04-15 18:35:18 1050

原创 多线程安全-- synchronized底层原理、对JMM(Java内存模型)、CAS、volatile、AQS的理解、ReentrantLock实现原理、synchronized和Lock区别

一个当前内存值V、旧的预期值A、即将更新的值B,当且仅当旧的预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做,并返回false。当执行上述代码的时候,发现foo()方法中的循环是结束不了的,也就说读取不到共享变量的值结束循环,主要是因为在JVM虚拟机中有一个JIT(即时编辑器)给代码做了优化。如果竞争激烈,重试频繁发生,效率会受影响,需要不断尝试获取共享内存V中最新的值,然后再在新的值的基础上进行更新操作,如果失败就继续尝试获取新的值,直到更新成功。

2024-04-15 18:33:01 689

原创 多线程--线程与进程、并行和并发、创建线程的四种方式、线程的状态以及状态之间的转化、wait和sleep方法的区别、停止运行线程的方式

多线程--线程与进程、并行和并发、创建线程的四种方式、线程的状态以及状态之间的转化、wait和sleep方法的区别、停止运行线程的方式

2024-04-15 11:43:30 1026

原创 散列表、HashMap的实现原理、HashMap的put方法的具体流程、HashMap的扩容机制、hashMap的寻址算法、HashMap 和 HashTable 的区别

4.3遍历tableli],链表的尾部插入数据,然后判断链表长度是否大于8,大于8的话把链表转换为红黑 树,在红黑树中执行插入操作,遍历过程中若发现key已经存在直接覆盖value。(3)如果是链表,则需要遍历链表,可能需要拆分链表,判断(e.hash & oldCap)是否为0,该元素的位置要么停留在原始位置,要么移动到原始位置+增加的数组大小这个位置上。1.JDK1.8之前采用的是拉链法。前会判断,如果当前数组的长度小于64,那么会选择先进行数组扩容,而不是转换为红黑树)时,将链表转化为。

2024-04-14 21:42:48 950

原创 数组、ArrayList底层实现原理、如何实现数组和List之间的转换、ArrayList和LinkedList的区别

因为它的底层使用的Arrays类中的一个内部类ArrayList来构造的集合,在这个集合的构造器中,把我们传入的这个集合进行了包装而已,最终指向的都是同一个内存地址。1.在根据数组索引获取元素的时候,会用索引和寻址公式来计算内存所对应的元素数据,寻址公式是:数组的首地址+索引乘以存储数据的类型大小。,当调用了toArray以后,在底层是它是进行了数组的拷贝,跟原来的元素就没啥关系了,所以即使list修改了以后,数组也不受影响。增删时间复杂度是O(1),其他都需要遍历链表,时间复杂度是O(n)

2024-04-14 19:24:54 1065

原创 SpringBoot框架--单例bean线程安全问题、AOP、事务失效场景、bean的生命周期、bean的循环引用问题、SpringMVC的执行流程、Springboot自动配置原理、常见注解

AOP称为面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。1.记录操作日志2.缓存处理3.Spring中内置的事务处理。

2024-04-14 16:52:08 799

原创 SQL优化策略---表的设计优化、SQL语句优化、主从复制及读写分离、索引优化、分库分表

如果数据库的使用场景读的操作比较多的时候,为了避免写的操作所造成的性能影响可以采用读写分离的架构。2.比如设置合适的字符串类型(char和varchar) char定长效率高,varchar可变长度,效率稍低。1,前提,项目业务数据逐渐增多,或业务发展比较迅速,单表的数据量达1000W或20G以后。2.按id也就是范围路由,节点1(1-100万),节点2(100万-200万)3. IO瓶颈(磁盘IO、网络IO)、CPU瓶颈(聚合查询、连接数太多)2,优化已解决不了性能问题(主从读写分离、查询索引.…

2024-04-13 21:20:58 266

原创 事务的特性、并发事务问题、隔离级别、undo log 和 redo log、MVCC

是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

2024-04-13 20:58:59 704 1

原创 MYSQL 聚集索引和二级索引、覆盖索引和超大分页处理、索引创建原则及索引失效情况

如果表没有主键,或没有合适的唯一索引,则InnoDB会自动生成一个rowid作为隐藏的聚集索引。,减少单列索引,查询时,联合索引很多时候可以覆盖索引,节省存储空间,避免回表,提高查询效率。在数据量比较大时,如果进行limit分页查询,在查询时,越往后,分页查询效率越低。,索引并不是多多益善,索引越多,维护索引结构的代价也就越大,会影响增删改的效率。是指查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到。作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高。范围查询右边的列,不能使用索引。

2024-04-13 18:31:22 399

原创 MySQL索引 --- B+树及选择的原因

在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B+树),这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。B树是一种多叉路衡查找树,相对于二叉树,B树每个节点可以有多个分支,即多叉。以一颗最大度数(max-degree)为5(5阶)的b-tree为例,那这个B树每个节点最多存储4个key。是在BTree基础上的一种优化,使其更适合实现外存储索引结构,InnoDB存储引擎就是用B+Tree实现其索引结构。① :磁盘读写代价B+树更低;

2024-04-13 17:35:00 115

原创 SQL语句执行很慢,如何分析?

可以采用MySQL自带的分析工具。

2024-04-13 17:15:40 204

原创 在MySQL中,如何定位慢查询?

配置完毕之后,重新启动MySQL服务器进行测试,查看慢日志文件中记录的信息/var/lib/mysql/localhost-slow.log。运维工具: Prometheus 、Skywalking。表象:页面加载过慢、接口压测响应时间过长(超过1s)调试工具:Arthas。

2024-04-13 17:04:25 104

原创 Redis是单线程的,但是为什么还那么快?

Redis是,执行速度非常快采用,避免不必要的上下文切换可竞争条件,多线程还要考虑线程安全问题使用:Redis是纯内存操作,执行速度非常快,它的性能瓶颈是而不是执行速度,I/O多路复用模型主要就是实现了。用户空间只能执行,而且不能直接调用系统资源必须通过内核提供的接口来访问内核空间可以执行,调用一切系统资源Linux系统为了,会在用户空间和内核空间都加入写数据时,要把用户缓冲数据拷贝到内核缓冲区,然后写入设备读数据时,要从设备读取数据到内核缓冲区,然后拷贝到用户缓冲区。

2024-04-13 11:43:26 549

原创 Redis集群方案-主从同步、哨兵模式、分片集群

slave完成同步时也会记录当前同步的offset,如果slave的offset小于master的offset,说明slave数据落后于master,需要更新。Redis分片集群引入了哈希槽的概念,Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。简称replid,是数据集的标记,id一致则说明是同一数据集。单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。

2024-04-13 11:01:49 668

原创 Redis使用场景-分布式锁(图文分析)

Redis实现分布式锁主要利用Redis的setnx命令。setnx是SET if not exists(如果不存在,则SET)的简写。使用的的分布式锁,底层是(保证原子性)。

2024-04-13 10:05:36 204

原创 Redis使用场景-缓存中遇到的问题及解决方案(图文分析)

*缓存穿透:**查询一个不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致每次请求都查数据库**解决方案一:**缓存空数据,查询返回的数据为空,仍把这个空结果进行缓存优点:简单缺点:消耗内存,可能会发生不一致的问题**解决方案二:**布隆过滤器(拦截不存在的数据)优点:内存占用较少,没有多余key缺点:实现复杂,存在误判相当于是一个以(bit)位为单位的数组,数组中每个单元只能存储二进制数0或1**布隆过滤器作用:**布隆过滤器可以用于检索一个元素是否在一个集合中。

2024-04-12 21:20:34 1651

原创 JAVA集成阿里云OSS 旧版代码(包含 accessKeyId 和accessKeySecret)

【代码】JAVA集成阿里云OSS 旧版代码(包含 accessKeyId 和accessKeySecret)

2024-04-09 21:13:16 155 1

原创 IDEA自动补全变量类型及变量名快捷键

2.使用快捷键Alt + Enter选择Introduce local variable自动补全的类型均为var关键字,只需要在Alt + Enter选择Introduce local variable回车时点击如下的小齿轮(注意,变量名输入确定之前才有小齿轮),勾选Declare var type即可;1输入.var回车后自动补全。

2024-04-09 16:14:46 751

原创 IDEA中单行注释、多行注释、属性注释、方法注释的快捷键

使用 Ctrl+Shift+ /, 添加多行注释,再次使用,去掉多行注释。使用Ctrl+ /, 添加单行注释,再次使用,去掉行注释。快捷键:Ctrl +Shift+ /快捷键:“/**” + enter。快捷键:“/*”+ enter。快捷键:Ctrl + /

2024-04-09 16:01:24 632

原创 SpringBoot使用PageHelper时pom文件无法导入或下载依赖的问题

SpringBoot使用PageHelper时pom文件无法导入或下载依赖的问题。

2024-04-09 15:38:29 382

空空如也

空空如也

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

TA关注的人

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