自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql加锁情况

mysql会在什么情况下加什么锁?

2023-08-10 16:02:35 126

原创 读取ES亿级数据效率问题

滚动查询(Scroll)是ElasticSearch提供的一个用于遍历数据集合的机制。它允许客户端初始时只获取一部分数据,然后可以通过不断发送滚动请求来迭代获取剩余的数据,直到全部数据都被检索出为止。利用游标 cursor 来持续地从 Elasticsearch 中读取数据,实现逐页获取数据的效果其原理是在第一次查询时生成一个快照,并将这个快照与一个唯一的id关联起来,这个id称为Scroll ID。

2023-05-15 19:50:22 562

原创 JVM相关命令

经过top命令查看到Java进程占用内存较大,考虑是程序引发告警,进一步排查jvm信息。

2023-03-15 16:41:57 117

原创 记录kafka消息重复消费问题

kafka消息重复消费问题复现及解决

2023-03-14 17:06:38 287

原创 MySQL锁相关

在读未提交、读已提交、可重复读这三种隔离级别下,使用的快照读,不加锁,并发非常高。在串行化隔离级别下,普通select会升级为意向共享锁IS。

2023-03-01 19:42:43 76

原创 关于mysql死锁问题简单记录

日志分析后定位到代码是进行了先删除记录,再批量插入数据,且处于多线程环境下,多个事务同时进行由于删除操作是根据索引列删除的,因此不考虑锁表情况,于是怀疑是间隙锁在多事务下引发的问题。

2023-02-27 19:26:37 376

原创 观察者模式:Spring之publishEvent的使用

用观察者模式中的publishEvent实现。

2023-02-13 20:20:57 892

原创 springboot工作中一种常用设计结构

模板方法+工厂设计模式

2023-02-13 19:27:11 62

原创 String&StringBuilder问题

关于字符串的使用

2023-02-10 11:26:44 82

原创 关于重写equals必须重写hashcode

【代码】关于重写equals必须重写hashcode。

2023-02-09 18:56:28 53

原创 ES分词字典更新查询不到数据

ES分词新增字典后查询不到数据

2022-08-17 17:46:54 1225

原创 ES 使用IK远程扩展词库

es IK远程扩展词库

2022-08-16 11:25:41 935

原创 ES数据迁移(snapshot)

es数据迁移

2022-08-09 14:27:36 1180

原创 ES Query的一些小笔记

es query dsl

2022-08-01 17:05:14 317

原创 springboot+quartz:DataSource name not set

springboot+quartz:DataSource name not set问题1分析并解决问题2分析并解决问题1项目启动报错java.sqlSQLException: There is no DataSource name ‘null’SchedulerConfigException:DataSource name not set分析并解决配置中心配置的quartz配置代码中可以获取到,便排除了远程配置获取失败问题。于是进行断点调试,将断点打在quartz的配置类中,断点也能进来,但是

2022-03-17 19:04:05 2997

原创 AQS共享锁独占锁

AQS详解AQS公共源码解析AQS独占锁(ReentrantLock)AQS共享锁(CountDownLatch)总结AQS公共源码解析部分源码public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizerimplements java.io.Serializable { private transient volatile Node head;//头结点 private transie

2022-02-11 14:57:02 80

原创 ssh连接:Host key verification failed

ssh连接:Host key verification failed问题复现解决方法问题复现$ ssh [email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT

2022-02-11 14:54:24 74

原创 解决哈希冲突的方法

目录解决哈希冲突的方法开放定址法链地址法再哈希法、建立公共溢出区总结四种方法解决哈希冲突的方法开放定址法m 为表长度增量di有如下取法:线性探测再散列 di = 1 , 2 , 3 , … , m-1平方探测再散列 di = 1 , -1 , 2, -2 , 3 , -3 , … , k , -k(取相应数的平方)随机探测再散列 di 是一组伪随机数列链地址法HashMap就是这么实现的再哈希法、建立公共溢出区建立一个公共溢出区域,就是把冲突的都放在另一个地方,不在表里面。

2021-03-04 14:21:21 82

原创 SpringMVC值传递(后-前)

目录SpringMVC值传递及作用域四大作用域applicationsession 域request域pageContext域SpringMVC响应数据ModelAndViewModelMapModelMap@SessionAttributes:将返回数据加入session域@ModelAttribute:请求前执行SpringMVC值传递及作用域四大作用域application生命周期:当Web应用被加载进容器时创建代表整个web应用的application对象,当服务器关闭或Web应用被移除

2021-02-23 10:36:23 343 1

原创 SpringMVC值传递(前-后)

SpringMVC接收参数方式一,普通方式-请求参数名和Controller方法的参数一致例如:localhost:8888/admin?name=zs&pwd=222public String addUser(String name, String pwd){ logger.debug("name:" + name + ",pwd:" + pwd); return "index"; }二,对象方式-请求参数名和Controller方法中的对象的参数一

2021-02-23 09:45:01 107

原创 Hystrix服务降级机制

目录Hystrix服务降级使用方法代码缺点解决方法Hystrix服务降级使用方法pom <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>启

2021-02-23 09:27:58 120 1

原创 Hystrix服务熔断机制

目录Hystrix服务熔断前言——理论服务雪崩断路器服务熔断服务熔断的实现服务熔断阈值的全部配置Hystrix服务熔断前言——理论服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C有调用其他的微服务,这就是所谓的”扇出”,如扇出的链路上某个微服务的调用响应式过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统雪崩,所谓的”雪崩效应断路器“断路器”本身是一种开关装置,当某个服务单元发生故障监控(类似熔断保险丝),向调用方法返回一个符合预期的

2021-02-23 09:25:33 100

原创 Hystrix仪表盘

目录Hystrix Dashboard使用方法1.pom2.启动hystrix dashboard3.被监控服务效果Hystrix DashboardHystrix Dashboard,它主要用来实时监控Hystrix的各项指标信息。通过Hystrix Dashboard反馈的实时信息,可以帮助我们快速发现系统中存在的问题使用方法1.pom <dependency> <groupId>org.springframework.cloud</g

2021-02-22 17:32:34 59

原创 SpringCloud-Gateway

目录Gateway简单使用1.pom2.yml配置中常用的predicate自定义FilterGatewaySpring Cloud Gateway 是 Spring Cloud 新推出的网关框架,之前是 Netflix Zuul。常见的功能有转发服务,权限认证,限流控制等等。三大核心概念:Route(路由)Predicate(断言)Filter(过滤)简单使用1.pom <dependencies> <dependency>

2021-02-22 17:27:27 53

原创 Mybatis动态查询

目录Mybatis动态查询if标签foreach标签trim标签where标签鉴别器Mybatis动态查询if标签<if test="name!= null and name !='' "> name like '%${name}%' and</if><if test="id!=null and id!='' "> id =#{id} and</if>foreach标签<select id="queryDynamic" param

2021-02-22 17:14:25 93

原创 @Resource、@Autowired、@Qualifier区别

使用@Autowired 注入接口时,如果接口有多个实现类,则会报错org.springframework.beans.factory.BeanCreationException总结@Autowired 是通过 byType 的方式去注入的, 使用该注解,要求接口只能有一个实现类。@Resource 可以通过 byName 和 byType的方式注入, 默认先按 byName的方式进行匹配,如果匹配不到,再按 byType的方式进行匹配。@Qualifier 注解可以按名称注入, 但是注

2021-01-07 17:19:12 122

原创 servlet线程安全吗?

目录servlet线程安全吗?servlet执行流程web 容器能为每个请求创建一个Servlet的实例吗?SingleThreadModelspringmvc是线程安全的吗?springmvc singleton有几种解决方法总结servlet线程安全吗?servlet默认是单例模式,在web容器中只创建一个实例,所以多个线程同时访问的时候,是非线程安全的。servlet执行流程客户端发送请求给服务器。服务器开始接受,先判断该请求的servlet实例是否存在,如果不存在先装载一个servle

2021-01-07 17:17:34 710

原创 Spring-Bean作用域

目录Spring Bean作用域种类singletonprototyperequestsessionapplication单例Bean的问题并发问题解决方案单例变原型线程隔离类ThreadLocal尽量避免使用成员变量使用并发安全的类分布式或微服务的并发安全Spring Bean作用域种类singleton在spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,spring创建的bean默认为单例模式prototype每次从容器中调用Bean时,都返回一个新的实例,即每次调用ge

2021-01-07 16:14:25 68

原创 AOP小总结

目录Aop术语定义Aop基本概念AOP编程底层实现机制一.JDK动态代理二.Cglib动态代理Spring boot使用Aop需要注意的Aop术语定义执行点(Executepoint) - 类初始化,方法调用。连接点(Joinpoint) - 执行点+方位的组合,可确定Joinpoint,比如类开始初始化前,类初始化后,方法调用前,方法调用后。切点(Pointcut) - 在众多执行点中,定位感兴趣的执行点。Executepoint相当于数据库表中的记录,而Pointcut相当于查询条件。增强(

2021-01-07 16:03:03 112

原创 spring事务管理

目录Spring事务管理事务特性及行为特性原子性( Atomicity )一致性( Consistency )隔离性( Isolation )持久性( Durability )传播行为1.PROPAGATION_REQUIRED2.PROPAGATION_SUPPORTS3.PROPAGATION_MANDATORY4.PROPAGATION_REQUIRES_NEW5.PROPAGATION_NOT_SUPPORTED6.PROPAGATION_NEVER7.PROPAGATION_NESTED隔离级别使

2021-01-07 15:57:26 87

原创 记录JUC中同步辅助类

JUC中的同步辅助类CountDownLatch/** * 减法计数器 */public class CountDownLatchDemo { public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch = new CountDownLatch(3); for (int i = 1; i <= 3; i++)

2021-01-07 14:51:27 48

原创 ArrayList

ArrayList底层原理数据结构继承关系扩容机制线程安全底层原理数据结构底层数据结构就是一个Object数组 /** * Shared empty array instance used for empty instances. */ private static final Object[] EMPTY_ELEMENTDATA = {};继承关系扩容机制ArrayList默认初始化大小为:10 /** * Default initial capacity.

2021-01-07 14:36:57 56

原创 Java类加载器

目录Java类加载器什么是Java类加载器?种类双亲委派机制Java类加载器什么是Java类加载器?类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。种类Bootstrap ClassLoader(启动类加载器):加载jre/lib/rt.jarExtension ClassLoader(扩展类加载器):加载jre/lib/ext

2021-01-07 14:31:07 69

原创 JVM之GC roots

目录什么是GC roots?什么是垃圾?判断对象是否可以回收的方法有哪些?1.引用计数法2. 枚举根节点可达性分析java中可作为GC root的对象什么是GC roots?常说的GC(Garbage Collector) roots,特指的是垃圾收集器(Garbage Collector)的对象,GC会收集那些不是GC roots且没有被GC roots引用的对象。什么是垃圾?简单说就是内存中已经不再被使用到的空间就是垃圾判断对象是否可以回收的方法有哪些?1.引用计数法Java中,引用和对

2021-01-07 14:28:12 99

原创 AtomicReference、AtomicInteger、手写自旋锁

目录AtomicReference源码分析UnSafe类AtomicInteger代码实现(手写自旋锁)手写自旋锁,根据CAS思想实现,AtomicReference,AtomicInteger等底层均使用了CASAtomicReference源码分析value值用volatile关键字,实现可见性private volatile V value;compareAndSet方法 public final boolean compareAndSet(V expect, V updat

2021-01-07 14:24:41 307 1

原创 SpringBoot整合RabbitMq的简单使用

使用RabbitMq的简单记录小流程导pom改yml创建交换机、队列、绑定1、通过AmqpAdmin创建2、通过加入IOC容器,Spring自动创建消息的生产与消费生产消费消息确认机制生产端确认队列抵达确认消费端确认死信队列(延时队列)的简单使用简单介绍消息成为死信的几种情况处理过程简单使用小流程导pom <dependency> <groupId>org.springframework.boot</groupId>

2020-12-30 13:44:22 110

原创 记录LRU算法的两种实现方式

手写LRU算法利用LinkedHashMap实现参照哈希双链表结构手写LRU算法LRU全称是Least Recently Used,即最近最久未使用的意思利用LinkedHashMap实现LinkedHashMap底层就是用的HashMap+双链表实现的,且自身已经实现了按照访问顺序的存储,且java源码注释中也说非常适合用作LRU缓存This kind of map is well-suited to building LRU cachesLinkedHashMap自身实现了removeEld

2020-12-14 17:28:36 177

原创 ReentrantLock底层原理之AbstractQueuedSynchronizer(AQS详解)

在java中,好多时候需要考虑线程安全问题,我们一般选择是使用Sychornized或JUC中Lock接口的实现类来实现Sychornized底层原理是JVM层面的,而Lock实现类ReentrantLock实现线程独占是为什么原理呢?下面我们将按这个思路去理解AQS原理,本篇不会搬太多AQS理论主要以ReentrantLock来理解AQSReentrantLock的简单应用 public void test() { Lock lock = new ReentrantLock()

2020-12-13 16:29:11 326

原创 java基础-字符串常量池

关于字符串常量池的那些事字符串intern()特殊字符的问题直接上代码intern()返回值问题寻找在哪儿有定义该常量菜鸟求教,望高人指点字符串intern()特殊字符的问题intern()方法是返回常量池中字符串的引用(针对java8而言),并且这个引用是该字符串第一次在堆中出现时的引用直接上代码String str = new StringBuilder("aaa").append("bbb").toString();System.out.println(str.intern());//aaa

2020-12-09 10:49:00 210 1

空空如也

空空如也

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

TA关注的人

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