自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot 如何处理跨域请求?你说的出几种方法?

1)什么是跨域请求?跨域请求(Cross-Origin Request)指的是在浏览器环境下,前端代码发起的请求与当前页面的域名(或端口、协议)不同。浏览器的同源策略(Same-Origin Policy)限制了从一个源(域名、协议、端口组成的组合)加载的文档或脚本如何与来自另一个源的资源进行交互。具体来说,如果一个页面加载自 http://domain1.com,则它的同源策略默认限制了对 http://domain2.com 发起的请求。2)为什么会出现跨域问题?

2024-07-02 09:36:42 933

原创 Sentinel 采用的是什么限流算法?

Sentinel 是阿里巴巴开源的一款流量控制和服务保护组件,旨在解决分布式系统中的流量管理、熔断降级、系统负载保护等问题。它提供了实时的流量监控、熔断降级、系统自适应保护等功能,能够帮助开发者有效管理和保护各种规模的应用服务。

2024-07-01 11:24:18 1095

原创 什么是 Elasticsearch 数据预热?

在 Elasticsearch 中,索引(Index)是一个包含相关文档的逻辑命名空间。它类似于关系型数据库中的表,但是更加灵活和动态。每个文档都属于一个索引,并且具有唯一的类型和标识符。索引允许用户按照自己的需求组织和存储数据,是数据存储和检索的核心组成部分。数据预热(Data Warmup)是指在实际查询到达之前,预先将索引和相关数据加载到内存中的过程。这个过程旨在优化查询响应时间和搜索性能,避免因数据未缓存在内存中而导致的冷启动延迟。

2024-06-30 12:39:55 524

原创 Go 语言切片遍历地址会发生改变吗?

到这里,我们就探究完毕了,Go 1.22 之后,for 循环的循环变量不再共享了,因此循环变量的地址也会发生改变。最后,我们回到一开始的问题,for 循环遍历切片,循环变量的地址会发生改变吗?这个时候我们需要回答到关于版本变更的问题,即在 1.22 之前,循环变量的地址是共享的,不会发生改变,在 1.22 之后,循环变量的地址不再是共享的,是会发生改变的。

2024-06-29 13:35:51 1112

原创 Redis 哨兵主备切换的数据丢失问题应该怎么解决?

Redis 哨兵是 Redis 分布式系统中用于监控、通知和自动处理故障恢复的组件。其主要作用包括:1)监控:哨兵定期检查 Redis 实例的健康状态,包括主节点和备节点。2)通知:在检测到 Redis 实例故障或其他问题时,哨兵可以发送通知给管理员或其他系统。3)自动故障恢复:哨兵可以自动地执行主备切换操作,将故障的主节点切换到备节点,确保系统的持续可用性。在Redis主备切换过程中,数据丢失问题可能会对业务连续性和数据完整性造成重大影响。

2024-06-28 15:29:55 783

原创 MySQL 如何实现将数据实时同步到 ES ?

Canal:译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。说白了就是,根据 MySQL 的 BinLog 日志进行增量同步数据。MySQL 所有的增删改操作都会进入MySQL 主从复杂的主节点,即 Master 节点。Master 节点会生成 Binlog 日志文件,每次操作 MySQL 数据库就会记录到 Binlog 日志文件中。Slave 节点会订阅 Master 节点的 Binlog 日志,以增量备份的形式同步数据到 Slave 数据。

2024-06-27 13:35:02 975

原创 为什么不选择使用原生的 NIO 而选择使用 Netty 模式呢?

创建一个继承自 Netty 的 ChannelInboundHandlerAdapter 或 ChannelOutboundHandlerAdapter 的类,实现自定义的业务逻辑。

2024-06-26 13:12:30 809

原创 数据库三大范式是什么?你是按什么原则去建数据库表的?

第一范式要求数据库表中的每一列都是不可再分的原子值,即每个字段都只包含单一属性的数据。没有重复的列或者组。

2024-06-25 13:52:35 718

原创 MySQL 外连接、内连接与自连接的区别?

内连接是一种基本的 SQL 连接操作,它根据两个或多个表之间的共同列值进行匹配,并返回符合条件的行。内连接仅返回两个表中在连接条件上有匹配的行,其他不匹配的行将被排除在结果集之外。table1和table2是要连接的两个表。column是用于连接两个表的列名或表达式。columns是要选择的列名,可以是或者表示所有列。索引的重要性:对于任何类型的连接操作,优化连接条件并且确保合适的索引使用是提高性能的关键。数据量和内存消耗。

2024-06-24 16:32:48 844

原创 RocketMQ 和 Kafka 关于消息队列的推拉模式是怎么做的?

总的而言推拉模式各有优劣,而我个人觉得一般情况下拉模式更适合于消息队列。RocketMQ 和 Kafka 都是功能强大的消息队列系统,各自在不同的应用场景中有着显著的优势和适用性。选择合适的系统取决于具体的业务需求,包括数据处理的速度、可靠性要求以及整体架构设计等方面的考量。

2024-06-23 12:41:35 1161

原创 数组和链表的区别是什么?

数组(Array)是一种线性数据结构,它由一组连续的内存单元组成,每个单元都存储着相同类型的数据。数组中的每个元素可以通过一个唯一的索引(通常是整数)来访问,这个索引表示元素在数组中的位置。数组可以是一维的(包含一行数据)、二维的(包含多行数据)甚至更高维度的。随着 JDK 版本的升级,链表和数组等基本数据结构在性能和功能上都得到了不同程度的优化和改进。

2024-06-22 17:14:15 800

原创 网站安全防护怎么做?

像星球中上线的项目都要考虑到安全防护问题,而且对数据库、缓存等密码要尤其注重,定期记得备份,可以写脚本或者用可视化工具进行调度,在面试中可以谈论到自己做的安全防御的机制。

2024-06-21 15:02:03 585

原创 MyBatis 动态 SQL怎么使用?

引言:在现代的软件开发中,数据库操作是任何应用程序的核心部分之一。而在 Java 开发领域,MyBatis 作为一款优秀的持久层框架,以其简洁的配置和强大的灵活性被广泛应用。动态 SQL 允许开发人员根据不同的条件和场景动态地生成和执行 SQL 语句,而不需要硬编码多个静态的 SQL 片段。这种灵活性不仅提高了开发效率,还使得应对变化需求和复杂业务逻辑变得更加容易和高效。

2024-06-20 16:32:35 625

原创 被拷打已老实!面试官问我 #{} 和 ${} 的区别是什么?

引言:在使用 MyBatis 进行数据库操作时,#{}和${}的区别是面试中常见的问题,对理解如何在 MyBatis 中安全有效地处理 SQL 语句至关重要。正确使用这两种占位符不仅影响应用的安全性,还涉及到性能优化。

2024-06-19 15:25:52 965

原创 多线程环境下,HashMap 为什么会出现死循环?

引言:HashMap作为一个常用的键值对存储结构,其内部实现在不同的JDK版本中有所演变,但其基本原理始终是通过哈希算法和数组来实现快速查找和存储。我们将探讨HashMap在多线程环境下出现死循环的根本原因,深入分析其中的数据结构特点以及并发修改可能带来的风险。同时,我们将提供解决这些问题的最佳实践和方法,包括使用线程安全的替代品如ConcurrentHashMap以及显式的同步控制策略。

2024-06-18 13:30:59 754

原创 线程池监控是怎么做的?

定时任务: 使用 ScheduledExecutorService 或者 Spring 的 TaskScheduler 等定时执行任务,周期性地获取线程池状态。数据存储和展示: 将获取的线程池指标存储到数据库(如MySQL、InfluxDB等)或者时序数据库,通过监控系统(如Grafana)展示和分析数据。@Component@Autowired@Autowired@Scheduled(fixedRate = 60000) // 每分钟执行一次// 存储监控数据。

2024-06-17 13:38:05 832

原创 MyBatis 的多级缓存机制是怎么样运作的?

引言:上周三,小 X 去面试一家中厂,其中面试官问到 MyBatis 的多级缓存机制是怎么样运行的?这个问题可以好好准备一下,很多人可能只会用 MyBatisPlus,简单的多表联查 SQL 语句可能都写不出来,更别说索引优化、SQL 语句优化、安全漏洞等问题了,先打好基础,才能更好地学习。

2024-06-16 13:43:32 1202

原创 面试官:你公司是怎么做日志收集处理的?

引言:在现代的软件开发和运维中,日志管理是至关重要的一环。面试官可能会问到如何处理日志收集与分析,特别是在微服务架构中如何有效地管理日志数据。本文将介绍一种常见且广泛应用的解决方案:ELK Stack。

2024-06-15 14:48:38 966

原创 Java ORM 双雄:Mybatis vs Hibernate 的技术对决

Mybatis 是一个持久层框架,它封装了数据连接、获取结果集等一系列的繁琐操作,使用者只需关注操作 SQL 语句的编写,通过 xml 或注解的方式就能将数据库中的数据与对象形成映射进行返回。Hibernate 是一个开源的对象关系映射(Object-Relational Mapping,简称 ORM)框架,用于 Java 语言。它提供了一种将数据库中的数据映射成 Java 对象的方式,从而允许开发者以面向对象的方式来操作数据库。

2024-06-14 19:31:50 433

原创 你项目用到了 Dubbo,讲讲为什么要用以及怎么使用的?

引言:在现代分布式系统中,服务化架构已成为构建高性能、可扩展和可靠系统的关键。Dubbo 作为一种优秀的服务化框架,提供了丰富的特性和灵活的配置选项,使得它在业界得到了广泛的应用和认可。本文将探讨为什么选择 Dubbo 以及如何在项目中使用 Dubbo 的相关内容。

2024-06-13 15:06:49 548

原创 什么是熔断降级?说说几种解决方案

引言:本文将深入探讨熔断降级的概念及其在微服务架构中的应用。我们将详细介绍熔断降级的定义,解释其在分布式系统中的重要性,并探讨几种常见的解决方案。通过阅读本文,读者将能够全面了解熔断降级机制,并掌握如何在实际项目中应用这一重要的容错策略。

2024-06-12 13:30:56 619

原创 面试官:为什么要有配置中心这个组件?你怎么使用的?

引言:在现代的软件开发中,配置管理是一个至关重要的环节。传统的方式是将配置信息硬编码在应用程序中或者放在静态的配置文件中,这种方式存在诸多问题,比如修改配置需要重新部署应用,而且配置分散在不同的地方,不易管理和维护。为了解决这些问题,配置中心应运而生。配置中心是一个专门用来管理应用程序配置信息的服务,它能够将配置信息集中存储,并实现动态刷新。

2024-06-11 15:14:24 396

原创 什么情况下需要使用分布式事务,有哪些方案?

引言:在当今的分布式系统中,数据的一致性和事务的处理成为了关键问题。随着应用程序的规模不断扩大和复杂性的增加,单一数据库事务的能力已经无法满足需求。因此,引入了分布式事务的概念,以确保跨多个节点的操作能够保持一致性。

2024-06-10 14:51:45 995

原创 什么是 AOF 重写?AOF 重写机制的流程是什么?

AOF (Append Only File)是 Redis 持久化的一种方式,其通过记录 Redis 执行的每一条命令,重启之后通过重新执行 Redis 中的命令来恢复数据。不过,随着 Redis 执行命令的不断增多,AOF 文件越来越大,但是很多数据其是不一定都是有意义的,比如原来 set age 10,后面又来个 set age 18,然后又来个 set age 30,我们这个时候就会发现,只有最后一个 age 是有意义的,前面都是没有用的。

2024-06-09 18:26:23 1131 1

原创 为什么需要在微服务中使用链路追踪?Spring Cloud 可以选择哪些微服务链路追踪方案?

引言:在当今的软件开发领域中,微服务架构已经成为了构建大型应用程序的主流方式之一。随着微服务数量的增加和服务之间复杂性的提高,对于了解和监控服务之间的调用关系变得越来越重要。而链路追踪技术的出现,为解决这一难题提供了有效的方法。

2024-06-08 15:43:07 1260

原创 Redis的事务与关系型数据库事务有何不同?

引言:关于 Redis 的事务很多人可能都是一知半解,大多数人只了解数据库的事务,并且是单体事务,对于 Redis 事务和常见关系型数据库的事务的区别还没有去了解过,本文就来详细进行介绍。

2024-06-07 19:23:57 864

原创 Spring 的自动装配方式你都答的出来吗?

引言:Sprin g框架作为 Java 企业级应用开发的主流选择,其自动装配功能大大简化了开发人员的工作。自动装配能够帮助开发者减少手动配置的繁琐过程,提高了代码的可维护性和灵活性。在本文中,我们将深入探讨 Spring 的自动装配方式,帮助读者更好地理解和应用 Spring 框架。

2024-06-06 17:33:18 873

原创 SpringBoot 同时可以处理多少请求?这可难倒了不少人

引言:当面对高并发请求时,Spring Boot 应用能处理多少请求成为一个非常关键的问题。无论是在面试还是在实际开发中,理解 Spring Boot 的并发处理机制和性能优化策略都是一个不可或缺的技能。本文将深入探讨 Spring Boot 的并发处理能力,从多个角度分析其性能表现,并提供相应的优化方案,帮助你在高并发场景下更好地掌控应用的稳定性和效率。

2024-06-05 08:17:17 658

原创 面试官:Spring 启动过程是什么样的?详细讲讲你自己的理解!

引言:在面试中,对于 Java 开发者来说,掌握 Spring 框架的原理和使用是至关重要的。其中,了解 Spring 的启动流程、循环依赖问题的解决方法以及与设计模式相关的内容是常见的面试题目。

2024-06-04 11:07:25 451

原创 关于 Bean 容器的注入方式,99 % 的人都答不全!

除了上述提到的标准作用域和生命周期管理方式外,Spring 还允许开发者自定义作用域和生命周期管理策略。可以通过实现Scope接口来定义新的作用域,通过实现接口来定义 Bean 的自定义初始化和销毁逻辑。

2024-06-03 14:23:39 716

原创 用了索引一定就有用吗?如何排查?

引言:在数据库优化中,索引是一个非常重要的话题。许多人都认为只要在查询字段上创建索引,查询就会变得更快,但实际情况并非总是如此。有时候,索引可能会失效,甚至导致查询变慢。因此,了解索引的使用情况以及如何排查索引失效是至关重要的。

2024-06-02 13:19:48 251

原创 MySQL Doublewrite Buffer 有了解过吗?

引言:在数据库管理中,确保数据的完整性和一致性是至关重要的。然而,在持久化数据到磁盘的过程中,可能会遇到各种意外情况,如断电或系统崩溃,从而导致部分数据写入,而另一部分数据未能成功写入,这就产生了部分页面写问题。MySQL 中的 InnoDB 存储引擎为了解决这一问题,引入了 Doublewrite Buffer 机制。

2024-06-01 11:08:14 1268

原创 如何监控慢 SQL?

引言:在开发和维护数据库驱动的应用程序时,监控慢 SQL 查询是确保系统性能和稳定性的关键一环。慢 SQL 查询可能会导致系统性能下降、资源浪费和用户体验差等问题。因此,及时监控和优化慢 SQL 查询对于保障系统的正常运行和用户满意度至关重要。

2024-05-31 09:27:22 1605

原创 什么是 SpringCloud?

Spring Cloud 是一系列框架的集合,旨在为分布式系统的开发提供解决方案。它基于 Spring Boot,利用 Spring Boot 的快速开发特性,帮助开发者快速构建分布式微服务架构系统。Spring Cloud 通过集成和封装各种成熟的开源解决方案,提供了配置管理、服务发现、负载均衡、断路器、分布式追踪、消息驱动微服务、网关路由等功能。了解了 SpringCloud 提供了什么能力,现在跟着我来简单了解一下这些能力是干嘛的,别等了!来吧:1)配置管理:集中管理配置,支持动态刷新。

2024-05-30 19:00:52 854

原创 面试官:Spring Bean 的生命周期都不会,你走吧下一位

引言:在面试中,了解 Spring Bean 的生命周期是非常重要的,因为它直接涉及到了 Spring 框架中对象的创建、初始化、使用和销毁等关键过程。掌握 Spring Bean 的生命周期可以帮助我们更好地理解 Spring 框架的运作机制,以及如何在实际项目中更好地利用 Spring 提供的功能。

2024-05-30 19:00:22 745

原创 探秘 Spring 的设计模式-下

引言:引言:设计模式是我们项目中经常会涉及到的项目进行重构、解构时的一种方法,像常见的单例模式、工厂模式、策略模式、装饰器模式都是比较常用的,关于 23 种设计模式,大家可以找本书专门去翻看一下,在 Java 框架的源码中也不例外,设计模式的使用实在是太多了,本文就来分析 Spring 中用到的设计模式,本文承接上期文章。

2024-05-28 11:07:56 1201

原创 你了解的 Spring 都用到哪些设计模式?

引言:设计模式是我们项目中经常会涉及到的项目进行重构、解构时的一种方法,像常见的单例模式、工厂模式、策略模式、装饰器模式都是比较常用的,关于 23 种设计模式,大家可以找本书专门去翻看一下,在 Java 框架的源码中也不例外,设计模式的使用实在是太多了,本文就来分析 Spring 中用到的设计模式。

2024-05-27 11:14:09 500

原创 为什么新生代又要分 s1、s2 和 eden?

引言:JVM 垃圾回收一直是面试以来的重要考点,可能中小厂不会问这方面相关的知识,但中大厂关于 JVM 几乎是必问项,而且在于你的各方面能力的考察,本文就来重点分析 JVM 垃圾回收的问题。

2024-05-26 12:14:21 467

原创 Cookie、Session、Token 之间有什么区别?

引言:在网络应用开发中,Cookie、Session 和 Token 是常见的用于管理用户状态和身份验证的机制。它们的产生与 HTTP 这种无状态协议密切相关。在 HTTP 中,每次客户端与服务器之间进行通信时,服务器无法直接识别客户端的身份或记住先前的请求。这意味着每个 HTTP 请求都是相互独立的,服务器无法从先前的请求中推断出客户端的状态或身份信息。本文来讲述面试中项目的必考点,如何保存 HTTP 的状态。

2024-05-25 22:19:15 501

原创 如何用 Redis 统计海量 UV?

引言:在当今数字化时代,对于网站和应用程序的运营者而言,了解其用户的行为和习惯是至关重要的。其中,衡量页面的独立访客数量(UV)是评估网站流量和用户参与度的重要指标之一。然而,当面对海量访问数据时,传统的计数方法可能变得低效且成本高昂。为解决这一挑战,Redis 提供了一种高效的解决方案:HyperLogLog。HyperLogLog 是一种基数估算算法,能够在常量时间内对集合中不同元素的近似数量进行快速估算。本文就来详细介绍下如何使用 Redis 统计海量 UV。

2024-05-24 10:17:11 377

空空如也

空空如也

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

TA关注的人

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