自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL数据库写入异常,主库内存溢出,扩容+清理buff/cache!很开门

MySQL数据库写入异常,主库内存溢出,扩容+清理buff/cach!很开门最近数据出现了两次写入异常报错如下:org.springframework,jdbc.UncategorizedsQlException: PreparedstatementCallback;uncategzed 50LExcention [sql语句] The MysOl server is running with the --read-only option so it cannot execute this......

2024-12-06 16:42:32 860

原创 设计模式开门之单例模式

单例模式归属于设计模式大类(创建型、结构型、行为型)设计模式中的创建型模式。一个类只允许创建一个对象(实例)那么这个类就是单例类,这个设计模式就是单例设计模式。单例设计模式的这个类提供了一种访问其唯一对象的方式,可以直接访问,不需要实例化该对象,提供了一个全局访问点来访问该实例。本文从(1)为什么使用单例?(2)如何实现一个单例模式?(3)单例模式可能存在哪些问题?三个方面简单聊聊。

2024-12-05 14:42:37 644

原创 Redis开门之批量插入Pipeline

小A查了下Redis批量处理数据的方法 网上给出的博客就是pipeline操作啊,代码里用的就是executePipelined 执行管道操作。小A:嗯...我们现在的处理逻辑是所有的任务完成后 才会统一进行同步Redis的操作,而且目前的代码并没有批量处理数据到Redis,而是直接一条一条的处理,就很慢....产品经理:小A,我发现我们这个数据整体下发的流程耗时有点长啊...从拉取数据到处理下发将近一个小时的时间,每天处理的XX数量也不是很多,看下是哪块耗时比较久,优化下。给出小A 优化前的大概框架。

2024-12-04 16:45:32 387

原创 AtomicBoolean与ReentrantLock

CAS的核心思想是'比较和交换如果内存中的值与预期值相等,则将其更新为新值,否则什么都不操作。三个操作数:内存值(V,被操作的变量存在内存中)预期值(E,操作前线程认为的值应该是此值)更新值(U,如果内存值与预期值相等则更新为此值)比较V&E--> 如果V== E 把V的值更新为U,并返回true;--> 如果V!=E 则不更新V值,并返回false底层是依赖CPU的硬件指令来实现。体现的是一种无锁机制,不需要通过显式的加锁解锁来控制线程的执行,避免了线程上下文切换带来的开销。

2024-12-03 11:21:54 984

原创 Could not extract response:no suitable HttpMessageConverter found for response type [class com.aliba

getMessageConverters().add(new StringHttpMessageConverter(StandardCharsets.UTF_8)),用于处理字符串数据的消息转换器,支持将Http响应直接解析为字符串,或者将字符串作为请求体发送。按照createRestTemplate声明的restTemplate的进行调用 接收的返回数据仍以String的方式接收 再转为Json处理。原来的处理方式把接口的响应转为Json类型,但对方的响应是text/html类型,报错如下。

2024-12-02 10:23:04 452

原创 SpringBoot整合rabbitMq使用方式

rabbitTemplate.convertAndSend(RabbitmqConfig.ITEM_TOPIC_EXCHANGE, "item.insert", "新增商品的消息~~");创建生产者:导入对应依赖后,使用rabbitTemplate,并调用convertAndSend来发送消息。编写配置类,使用@Bean注解在对应的方法上把方法的返回值(将队列,交换机等信息)交由spring管理。注解在消息处理方法上,指定监听的队列名称,并在方法参数中接收消息。// 处理接收到的消息。

2023-06-16 19:49:56 696 1

原创 SpringBoot自动配置的原理

以WebMvcAutoConfiguration自动配置的原理为例,SpringBoot内部对大量的第三方库或Spring内部库进行了默认配置,这些配置是否生效,取决于我们是否引入了对应库所需的依赖,如果有那么默认配置就会生效。(查源码)自动配置类(Auto-Configuration Class):自动配置类使用条件注解来标记自己的生效条件,并在满足条件时进行自动配置。SpringBoot为我们提供了默认配置,而默认配置生效的条件,我们也可以自己配置,那么就会覆盖默认配置。:声明这个类是一个配置类。

2023-06-15 21:44:55 109 1

原创 SpringBoot启动类@SpringBootApplication注解

通过@SpringBootConfiguration注解的源码得知,其配置了一个@Configuration注解,来声明这是一个配置类,经过spring扫描读取其中的配置信息。在springBoot的启动类中,提供了一个mai函数的程序入口,来启动加载SpringBoot程序,那么注解@SpringBootApplication,通过源码可以看到,它相当于@ComponentScan + @EnableAutoConfiguration + @SpringBootConfiguration。

2023-06-13 23:18:25 303 1

原创 缓存雪崩、缓存穿透、缓存击穿原因及解决办法

缓存穿透是指缓存穿透是指在使用缓存系统的应用程序中,恶意请求或者无效的请求频繁地访问缓存中不存在的数据,导致大量请求直接访问后端数据库或服务,而绕过了缓存系统的情况。②:延迟缓存更新策略(缓存穿透):当发现某个缓存键对应的数据不存在时,可以采取一定的策略,如先访问数据库或后端服务获取数据,然后将数据写入缓存,避免了多个并发请求同时访问数据库。①:设置热点数据的永不过期策略:对于一些非常热点且不经常变动的数据,可以将其缓存设置为永不过期,确保数据一直存在于缓存中,避免了过期导致的击穿问题。

2023-06-12 19:37:31 384 1

原创 Spring是如何解决循环依赖的?

如果发现循环依赖,Spring 会使用第二级缓存中的代理对象来解决循环依赖的问题,确保每个对象都可以获取到完整的依赖链。3. **接着,处理对象属性注入:** Spring 继续完成对象的属性注入过程,对于循环依赖的属性,Spring 会将一个代理对象注入,而不是直接注入实际对象。2. **然后,提前暴露对象引用:** 在对象实例化的过程中,如果发现有其他对象依赖该对象,Spring 会提前暴露该对象的引用,使得其他对象可以获取到该对象的引用,但此时该对象的属性尚未注入。

2023-06-07 19:54:14 168 1

原创 浅聊jvm

JVM入门笔记](https://blog.youkuaiyun.com/fllow_wind/article/details/117027924#:~:text=%E4%B8%89%E7%A7%8DJVM%3A%201%20Sun%E5%85%AC%E5%8F%B8%EF%BC%9AHotSpot%20%E7%94%A8%E7%9A%84%E6%9C%80%E5%A4%9A,2%20BEA%EF%BC%9AJRockit%203%20IBM%EF%BC%9AJ9VM)具体放在哪里,不同的实现可以放在不同的地方。

2023-05-25 10:39:54 65 1

空空如也

空空如也

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

TA关注的人

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