面渣题库
文章平均质量分 74
@泡泡糖
普通大学生一枚
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
软删除和硬删除的区别及实际应用
软删除是一种数据删除技术,它并不真正从数据库中移除记录,而是通过修改记录的状态来标记该记录为已删除。这通常通过增加一个如is_deleted的布尔字段或者deleted_at的时间戳字段实现。当is_first标记为true或者deleted_at填充了具体删除时间,该记录在应用逻辑上被视为已删除,但物理上仍保留在数据库中。原创 2024-05-13 14:54:57 · 1805 阅读 · 2 评论 -
✅技术社区--布隆过滤器在项目中怎么用的?不用可以吗?
快速判断该用户名是否已经被使用了,系统可以容忍一定的误判率,对于布隆过滤器无法删除元素这个缺点,添加一层 Redis 缓存,将已经注销的用户名放在这个 Redis 中的 set 里,这样就可以解决布隆过滤器无法删除元素的缺点了,不过如果注销用户名多了,可能会存在大 key 的问题,因此要考虑。,用户注册用户名重复的话,大不了就换一个用户名就好了,这种情况是可以容忍的,之后用户注册成功之后,再将注册成功的用户名也放入的布隆过滤器中,这样在。,可能将不在集合中的元素判断为在集合中,可以通过。原创 2024-04-17 23:30:17 · 1174 阅读 · 0 评论 -
Java—拆箱和封箱
在Java中,拆箱(Unboxing)和封箱(Boxing)是自动化的过程,用于在基本数据类型和它们对应的引用类型(包装类)之间进行转换。这两个概念在处理基本数据类型与对象之间的转换时尤其重要,因为集合框架(如ArrayListHashMap等)仅能存储对象类型,不能直接存储基本数据类型(如intdouble等)。原创 2024-03-23 14:01:13 · 639 阅读 · 0 评论 -
消息队列—RabbitMQ如何保证消息可靠性?
我们的生产者发送消息之后可能由于网络闪断等各种原因导致我们的消息并没有发送到MQ之中,但是这个时候我们生产端又不知道我们的消息没有发出去,这就会造成消息的丢失。到这一步基本都是一些很小概率的问题了,比如MQ突然宕机了或者被关闭了,这种问题就必须要对消息做持久化,以便MQ重新启动之后消息还能重新恢复过来。最后一步会出问题的地方就在消费者端了,不过这个解决问题的方法我们之前的文章已经说过了,就是消费者的消息确认。消息的持久化要做,但是不能只做消息的持久化,还要做队列的持久化和Exchange的持久化。原创 2024-03-19 12:54:36 · 1976 阅读 · 0 评论 -
✅技术社区—跨域问题及解决方案
跨域问题及解决方案原创 2024-03-17 11:41:11 · 1111 阅读 · 0 评论 -
✅技术社区—利用SpringBoot Actuator集成 Prometheus和Grafana搭建完整的服务监控体系
在系统中,我们需要一个系统监控的东西。它就像我们的眼睛,有了这双眼睛我们知道系统到底发生了什么服务器当前运行状态压力等等。因此系统监控是非常关键和重要。接下来我就分享下技术社区项目中利用Actuator+Prometheus+Grafana搭建的监控系统.利用Spring Boot Actuator集成Prometheus和Grafana搭建一套完整的服务监控体系是一个非常实用的方法,以确保社区平台等应用的稳定运行。下面是一个详细的解释和步骤指南。原创 2024-03-15 10:42:24 · 1978 阅读 · 0 评论 -
✅技术社区—集成xxl-job实现定时任务的管理和执行
在你的应用中定义任务执行逻辑。使用@XxlJob注解标记方法,方法名即为任务的标识。@Component// 这里写任务执行逻辑。原创 2024-03-14 21:13:53 · 1599 阅读 · 0 评论 -
✅技术社区—MySQL和ES的数据同步策略
在实现选择性同步之前,明确你想要同步哪些数据。这可能基于表、字段或数据的特定条件。例如,你可能只想同步某些表,或者表中满足特定条件的行。原创 2024-03-14 19:23:26 · 1562 阅读 · 0 评论 -
✅技术社区—通过Canal框架实现MySQL与ElasticSearch的数据同步
部署 Canal Server:首先需要在本地安装并启动 Canal Server,使其连接到你的 MySQL 数据库,并开始监听 Binlog 日志。配置 Elasticsearch:确保本地已经安装并启动 Elasticsearch。使用 Canal Adapter:Canal 提供了官方的 Adapter,用于将数据同步到 Elasticsearch。需要配置 Adapter 以连接到你的 Elasticsearch 实例。原创 2024-03-14 16:35:37 · 1227 阅读 · 0 评论 -
MySQL—InnoDB在RC隔离级别下如何处理事务读取操作
本文将探讨InnoDB在(Read Committed)隔离级别下如何处理事务读取操作的原理。这个过程是InnoDB多版本并发控制(MVCC)机制的一个关键组成部分,旨在提供高效的事务隔离,同时减少锁的需求,允许更高的并发性。原创 2024-03-12 15:37:37 · 621 阅读 · 0 评论 -
MySQL—主从复制机制
MySQL主从复制是一种异步复制方式,其中一个数据库服务器(主服务器)的数据变动会被复制到一个或多个数据库服务器(从服务器)。主服务器负责处理所有写操作,而从服务器则复制主服务器上的数据变更,以此来实现数据的一致性。在主从复制中,主服务器负责处理写操作(如INSERT、UPDATE、DELETE),而所有的这些更改都会被记录在主服务器的二进制日志(Binary Log)中。从服务器通过读取这些二进制日志文件,并在本地执行相同的数据修改操作,从而实现与主服务器的数据同步。原创 2024-03-11 19:51:34 · 1317 阅读 · 0 评论 -
MySQL—数据页的结构和原理
在现代关系型数据库管理系统(RDBMS)中,数据页是核心的数据存储结构,它是数据文件中用于存储和管理数据的基本单位。以MySQL的InnoDB存储引擎为例,数据页通常是磁盘上I/O操作的最小单位,这意味着数据库在读取或写入数据时都是按页进行的。现在,我们将详细探讨数据页的结构和原理。在数据库系统中,数据页(Data Page)是数据存储的基本单位。InnoDB存储引擎将数据存储在磁盘上的页面(pages)中,每页通常是一个固定大小的块,如16KB。这样的设计允许数据库系统有效地读写大量数据。原创 2024-03-11 19:11:09 · 1178 阅读 · 0 评论 -
设计模式—单例模式
单例模式(Singleton Pattern)是一种常用的软件设计模式,其核心思想是确保一个类仅有一个实例,并提供一个全局访问点来获取这个实例。单例模式主要用于控制资源的访问,比如配置文件的读取,数据库的连接等,通过确保这类资源全局只有一个实例,既可以避免对资源的多重占用,又可以减少系统的性能开销。原创 2024-03-05 15:37:23 · 664 阅读 · 0 评论 -
Java中的强引用、弱引用
在Java中,引用(Reference)是指在程序中使用对象的方式。强引用(Strong Reference)和弱引用(Weak Reference)是Java中不同类型的引用,它们在垃圾回收过程中起着不同的作用。原创 2024-02-27 19:22:12 · 780 阅读 · 0 评论 -
技术社区项目—采用自旋锁策略优化缓存架构,针对热key的并发访问进行同步,防止其失效时导致的缓存击穿
采用自旋锁策略优化缓存架构,针对热key的并发访问进行同步,防止其失效时导致的缓存击穿原创 2024-02-26 21:18:39 · 1043 阅读 · 0 评论 -
技术社区项目—借助Logback 的扩展机制实现异常感知并进行邮件推送异常信息
✅借助Logback 的扩展机制实现异常感知并进行邮件推送异常信息原创 2024-02-26 19:45:06 · 980 阅读 · 0 评论 -
✅技术社区项目—JWT身份验证
JWT鉴权流程及遇到的安全问题原创 2024-02-25 15:08:39 · 852 阅读 · 0 评论 -
✅鉴权—cookie、session、token、jwt、单点登录
鉴权必须了解的5个兄弟:cookie、session、token、jwt、单点登录原创 2024-02-25 14:48:26 · 1309 阅读 · 0 评论 -
技术社区项目—完善微信公众号扫码登录
在之前的技术博客中,我们介绍了利用SSE协议实现技术社区公众号扫码登录的方案。然而,这个方案的设计中有一点并没有特别标注出来,即将微信公众号登录拆分为两个接口的原因和背景。现在,我们将对这个方面进行完善,以更好地理解这个设计决策的动机。原创 2024-02-24 15:57:38 · 726 阅读 · 0 评论 -
技术社区项目—利用SSE协议实现技术社区公众号扫码登录
在技术社区项目中,用户登录是一个至关重要的环节,而传统的用户名密码登录方式已经无法满足用户对于便捷、安全的需求。为了提升用户体验,我们开发小组采用了一种基于SSE(Server-Sent Events,服务器发送事件)协议的登录方式,通过微信公众号扫码登录的方式,实现了快捷、实时的登录体验。原创 2024-02-24 15:12:07 · 1724 阅读 · 0 评论 -
缓存篇—缓存雪崩、缓存击穿、缓存穿透
缓存异常会面临的三个问题:缓存雪崩、击穿和穿透。原创 2024-02-22 18:02:18 · 1085 阅读 · 0 评论 -
缓存篇—缓存穿透
当用户访问的数据,既不在缓存中,也不在数据库中,导致请求在访问缓存时,发现缓存缺失,再去访问数据库时,发现数据库中也没有要访问的数据,没办法构建缓存数据,来服务后续的请求。那么当有大量这样的请求到来时,数据库的压力骤增,这就是缓存穿透的问题。原创 2024-02-22 17:55:58 · 1110 阅读 · 0 评论 -
缓存篇—缓存击穿
如果缓存中的某个热点数据过期了,此时大量的请求访问了该热点数据,就无法从缓存中读取,直接访问数据库,数据库很容易就被高并发的请求冲垮,这就是缓存击穿的问题。原创 2024-02-22 17:54:19 · 774 阅读 · 0 评论 -
缓存篇—缓存雪崩
当大量缓存数据在同一时间过期(失效)或者 Redis 故障宕机时,如果此时有大量的用户请求,都无法在 Redis 中处理,于是全部请求都直接访问数据库,从而导致数据库的压力骤增,严重的会造成数据库宕机,从而形成一系列连锁反应,造成整个系统崩溃,这就是缓存雪崩的问题。原创 2024-02-22 16:11:41 · 1581 阅读 · 0 评论 -
✅SpringBoot自动装配原理
Spring Boot的自动配置是通过@EnableAutoConfiguration注解实现的。当该注解被标记在一个类上时,Spring Boot就会根据应用程序中所引入的依赖,自动配置应用程序所需的Bean、服务和其他组件”原创 2024-02-22 00:11:57 · 531 阅读 · 0 评论 -
✅SpringAOP-说说 Spring AOP 和 AspectJ AOP 区别
SpringAOP-说说 Spring AOP 和 AspectJ AOP 区别原创 2024-01-16 20:11:45 · 531 阅读 · 0 评论 -
✅SpringAOP-说说 JDK动态代理和 CGLIB 代理
Spring 的 AOP 是通过动态代理来实现的,动态代理主要有两种方式 JDK 动态代理和 Cglib 动态代理,这两种动态代理的使用和原理有些不同。原创 2024-01-16 20:10:24 · 660 阅读 · 0 评论
分享