- 博客(68)
- 收藏
- 关注

原创 解决:Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1问题
解决:Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1问题问题Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1解决方法在maven安装路径下的conf文件夹下的settings.xml文件中添加如下代码<mirror> <id>alimaven</id>
2022-03-07 14:35:07
16315
7
原创 Redis+Caffeine 多级缓存数据一致性解决方案
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。当有新消息通过 publish 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端。Redis的订阅发布功能与传统的消息中间件(如:RabbitMQ)相比,相对轻量一些,针对数据准确和安全性要求没有那么高的场景可以直接使用。本文主要讲解了在使用Redis和Caffeine多级缓存时使用Redis的发布订阅模式来保证两级缓存的数据一致性。
2024-12-03 21:38:21
1566
2
原创 Spring事务详解
本文主要讲了Spring事务,包括事务概念,事务的隔离级别,Spring事务的传播行为,Spring事务失效的场景和Spring事务实现的原理。希望对大家有帮助,大家一起学习,一起进步。
2024-11-05 20:35:23
1138
原创 JVM垃圾回收详解
垃圾回收器的组合关系虽然很多,但是针对几个特定的版本,比较好的组合选择如下:JDK8及之前:ParNew+CMS(关注暂停时间)、ParallelScavenge+ParallelOld(关注吞吐量)、G1(JDK8之前不建议,较大堆并且关注暂停时间)JDK9之后:G1(默认)从JDK9之后,由于G1日趋成熟,JDK默认的垃圾回收器已经修改为G1,所以强烈建议在生产环境上使用G1。
2024-11-01 16:53:49
878
原创 Spring中三级缓存如何解决循环依赖的
我们都知道,Spring时使用了三级缓存来解决的循环依赖问题。但是三级缓存是什么?三级缓存又是如何解决循环依赖的呢?为什么需要三级缓存,二级不行吗?带着这些问题,我们一起来研究一下Spring的源码,揭秘上面的问题。
2024-10-24 17:47:01
1084
原创 MySQL中SQL的执行顺序
在日常的开发工作中,我们经常会自己手写一些sql语句,但是对于这些sql语句是怎么执行的,执行的顺序又是怎么样的呢?想必各位大佬对此也是了解的,所以对sql语言的执行顺序有一定的了解的话,会更好的理解一些sql语句,从而更好的写sql语句,也有助于SQL的调优。就比如说,先使用子查询对数据进行过滤后在进行join操作还是直接使用join操作之后,再进行数据过滤。
2024-10-24 11:47:15
1059
原创 Insert into on duplicate key update 死锁问题解析
Insert into on duplicate key update 死锁问题解析
2024-10-18 12:37:56
1344
3
原创 Python学习笔记-函数
函数的定义是组织好的,可重复使用的,用来实现特定功能的代码段函数的作用为了得到一个针对特定需求、可供重复利用的代码段提高程序的复用性,减少重复性代码,提高开发效率如何定义个一个函数,需要用到关键字def"""演示函数的定义语法""" # 定义一个函数,输出相关信息 def say_hi() : print("Hi 我是黑马程序员,学Python来黑马") # 调用函数,让定义的函数开始工作 say_hi()
2024-10-05 22:58:03
497
原创 Python学习笔记-文件操作
什么是编码?编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。编码有许多中,我们最常用的是UTF-8编码为什么需要使用编码?计算机只认识0和1,所以需要将内容翻译成0和1才能保存在计算机中。同时也需要编码, 将计算机保存的0和1,反向翻译回可以识别的内容什么是文件?内存中存放的数据在计算机关机后就会消失。要长久保存数据,就要使用硬盘、光盘、U 盘等设备。为了便于数据的管理和检索,引入了“文件”的概念。
2024-10-05 22:56:39
857
原创 Python学习笔记-数据容器
什么是容器?容器是一种可以存储多个元素的Python数据类型python中的容器有哪些?list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典)数据容器可以从以下视角进行简单的分类:是否支持下标索引支持:列表、元组、字符串 - 序列类型不支持:集合、字典 - 非序列类型是否支持重复元素:支持:列表、元组、字符串 - 序列类型不支持:集合、字典 - 非序列类型是否可以修改支持:列表、集合、字典不支持:元组、字符串。
2024-10-05 22:54:57
964
原创 Could not start SASL: b’Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to
pyhive报错Could not start SASL: b‘Error in sasl_client_start (-4) SASL(-4)解决方案
2024-10-04 19:29:23
490
原创 Unexpected character ‘=‘, expected a semi-colon after the reference for entity ‘useUnicode问题
假如您在 XML 文档中放置了一个类似 “&” 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。在XML文档中的所有文本都会被解析器解析,非法的 XML 字符必须被替换为实体引用(entity reference)。Xml文件中不能使用&,要使用他的转义&来代替。xml 文件中出现特殊字符,需要转义。转义序列必须以 “;转义序列各字符间不能有空格;单独的&不被认为是转义开始;
2024-09-23 22:14:53
515
原创 truncate锁表问题
本次事故,主要是因为数据库特新掌握的不够,加上操作不当。接口对接设计的时候没有沟通的很详细。以为就是单纯的提供一个接口即可,没有后续的那么多的策略和定时任务啥的,没有评估好接口的处理能力。好在处理及时,没有造成很大的影响本次问题是我入职一个多月的时候发生的,我们项目用的技术比较杂,有StarRocks,GreenPlum,Clickhouse,ES,Hbase都有,我也不知道为啥这样,就是都用了。在使用一种新的技术的时候一定要做好调研,多查阅一些资料,看有没有什么坑,可以尽量的规避掉。
2024-09-19 10:28:14
810
原创 DevOps实现CI/CD实战(二)-Jenkins配置
CI的整个流程就搞定了,但是我们每次都是拉取最新的代码进行构建的,我们需要不同的环境进行不同的部署。Jenkins点击立即构建,jenkins会拉取最近的代码,重新构建,然后把打包后的文件上传到容器根目录下的workspace。2.宿主机的端口号已经被Jenkins占用,修改docker-compose.yml文件中宿主机映射的端口号。配置把代码切换到当前的tag上,选择不同的提交点。修改 Source files下面的配置,添加docker配置的目录。再次到构建的页面,就可以选择对应的标签进行构建了。
2024-08-26 13:50:40
1106
1
原创 DevOps实现CI/CD实战(一)
DevOps,字面意思是Development &Operations的缩写,也就是开发&运维。虽然字面意思只涉及到了开发团队和运维团队,其实QA测试团队也是参与其中的。网上可以查看到DevOps的符号类似于一个无穷大的符号
2024-08-26 13:38:09
1190
原创 CompletableFuture介绍与实战
日常工作中,大多数情况下我们的接口的执行逻辑都是串行化的,串行化的逻辑也基本能满足我们绝大部分的场景。但是,在一些情况下我们的代码可能会存在一些比较耗时的操作,串行的逻辑就有可能造成代码的阻塞,影响用户的体验。这种情况下就需要我们对一些复杂的场景,耗时的操作做一些异步并行的操作,来提升代码的执行效率,从而提升用户的体验。
2024-07-15 16:16:21
941
原创 Redis+Caffeine 实现两级缓存实战
本文介绍Redis+Caffeine实现两级缓存的方式。一种是常规的方式,一种的基于注解的方式。具体的实现可根据自己项目中的业务场景。至于为什么要用Redis+Caffeine的方式,文章也提到了,目前我们Redis集群压力还算挺大的,而且接口对RT的要求也是比较高的。有一点好的就是我们的数据是每天全量推一边,总量也不大,实时性要求也不强。所以就很适合本地缓存的方式。使用本地缓存也要注意设置容量的大小和过期时间,否则容易出现内存溢出。
2024-07-10 15:15:37
2061
7
原创 Spring Cloud OpenFeign底层实现原理
OpenFeign是Spring Cloud 在Feign的基础上支持了Spring MVC的注解,如@RequesMapping等等。OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。通过触发 Spring 应用程序对 classpath 中 @FeignClient 修饰类的扫描解析到修饰类后, Feign 框架通过扩展 Spring Bean。
2024-04-16 22:31:55
2599
3
原创 Java设计模式-结构型-适配器模式
与电源适配器相似,在适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类。适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用。也就是说:当客户类调用适配器的方法时,在适配器类的内部将调用适配者类的方法,而这个过程对客户类是透明的,客户类并不直接访问适配者类。因此,适配器让那些由于接口不兼容而不能交互的类可以一起工作。适配器模式可以将一个类的接口和另一个类的接口匹配起来,而无须修改原来的适配者接口和抽象目标类接口。
2024-02-19 12:29:40
1725
原创 idea2023创建spring项目无法选择Java8
今天下载了新版的idea 2023.3.2,但是在创建springboot项目的时候只能选择Java17和Java21,没法选择其他的版本。
2024-02-06 14:35:53
1171
10
原创 SpringBoot面试之SpringBoot自动装配原理
最近因为各种原因,我又重新加入到了找工作的大军当中。昨天在面试的时候与面试官聊到我们项目都是基于SpringBoot开发的,然后面试官就顺口问了句:”SpringBoot项目会引入许多的starter,比如:mybatis-plus-boot-starter等,它是怎么完成加载的?又是怎么完成按需加载的呢?“
2023-11-20 15:40:04
765
原创 设计模式-抽象工厂模式
我们知道,在工厂方法模式中,通过为每个产品创建一个工厂的方式,没增加一个产品只需要增加一个产品类,然后实现这个产品类的工厂,解决了简单工厂模式的不满足开闭原则的问题。那么有这么一种场景,随着工厂业务场景的增加,产品的类型也不断的增加,如果还是为每个产品都创建一个工厂类,那么代码中势必会出现大量的工厂类,增加系统的开销,也不好维护。此时我们就考虑,是不是可以把一些相关联的产品归纳成一个产品族,交由同一个工厂进行管理。
2023-09-07 11:39:38
688
原创 Elasticsearch 聚合数据结果不精确问题解决方案
近期我们项目中出现使用ES聚合某个索引的数据取TOP 10的数据和相同条件下查询所有数据然后按数据量排序取的TOP 10的数据不一致的问题。下面我们简单分析一下这个问题,列出一些常见的解决方案。
2023-06-02 14:27:18
2829
原创 @DS+@Transactional注解切换数据源失效解决方案
spring 的@Transactional声明式事务管理时通过动态代理实现的。@DS注解加到mapper接口、service接口、service方法里都不生效,获取的还是默认的主数据源。猜测是由于spring的aop切面机制导致拦截不到@DS注解,进而不能切换数据源,正确的做法是添加到service实现类或者实现类里具体的方法上。
2023-04-28 15:42:57
9320
4
原创 OutOfMemoryError: Unable to create new native thread:Hystrix线程池导致线程数耗尽的问题
OutOfMemoryError: Unable to create new native thread使用Hystrix线程池导致线程数耗尽的问题,问题排查及解决方案
2023-02-06 11:11:31
1496
2
原创 解决Idea中无法下载源码
Cannot Download Sources Sources not found for: org.springframework:spring-context:4.3.11.RELEASE
2022-05-20 14:30:42
1302
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人