Kafka常见面试题
Kafka常见面试题 如何保证Kafka消息不丢失 和RabbitMQ相似,在Kafka里面如果有防止消息不丢失,还是从以下3个方面入手解决。 防止生产者发送消息到Broker导致的消息丢失 设置异步发送 // 同步发送
RecordMetadata recordMetadata = kafkaPr
RabbitMQ常见面试题
RabbitMQ常见面试题 RabbitMQ如何保证消息不丢失 RabbitMQ消息丢失的三种情况 消息丢失的三种情况: 消息未到达交换机 消息到达交换机但是未到达队列,或到达队列但是未莱得及消费 消费者未接收到消息 解决以上问题,可以从以下三个方面解决 生产者确认机制 RabbitMQ提供了pub
Spring框架常见面试题
Spring框架常见面试题 Spring框架中的单例bean是线程安全的吗? 答案显然是否,但是为啥我们平时使用的是并没刻意去注意线程安全问题呢?其实最主要的原因是在于我们平时使用的时候大多注入的是无状态的Bean对象,无状态的Bean对象天然就是线程安全的。 无状态和有状态 简单来说:无状态 Be
MySQL常见面试题
MySQL常见面试题 :泡泡_滑稽::泡泡_啊: 如何定位慢查询 解决方案 使用成熟的开源工具: 调试工具:Arthas 运维工具:Prometheus 、Skywalking MySQL自带的慢日志(调试阶段开启,生产阶段关闭) 慢查询日志记录了所有执行时间超过指定参数(long_query_ti
Redis面试常见题
Redis面试常见题 缓存穿透 定义:查询一个不存在的数据,DB查询不到数据也不会直接写入缓存,就会导致每次请求都查数据库(如果有人恶意攻击,会击垮数据库)。 解决办法: 缓存空数据,查询返回的数据为空,仍然把这个空结果进行缓存 优点:实现简单。 缺点:消耗内存,可能发生数据不一致的问题 使用布隆过
分布式 ID 生成系统 Leaf 的设计思路,源码解读
分布式 ID 生成系统 Leaf 的设计思路,源码解读 什么是分布式ID? ID的特点就是唯一,而分布式ID就是指分布式系统下的ID,他是全局唯一的。 为啥需要分布式ID 这就和唯一息息相关了。比如我们使用MySQL存储数据,一开始数据量不大,但是业务经过一定时间的发展,单表数据每日剧增,最终突破1
Mysql和Redis双写不一致问题怎么解决?
Mysql和Redis双写不一致问题怎么解决? 在后端面试中,只要简历上写了 Redis,这道题是 100% 必问的: “怎么保证缓存和数据库的数据一致性?” 很多同学上来就背八股文:“延时双删、加分布式锁…” 但在面试官眼里,这道题考的不是死记硬背,而是你有没有处理过真实的线上事故。 因为在生产环
初始RabbitMQ
初始RabbitMQ 基础篇 同步调用 同步调用是一种线性执行模式。当你调用一个函数后,程序会暂停在当前位置,直到这个函数执行完毕并返回结果后,才会继续执行下一行代码。这就像你在餐厅点餐后,站在柜台前一直等到厨师做好餐品拿到手后才离开. 缺点: 拓展性差: 拓展服务需要更改通知代码 性能下降: 串行
Redis 主从 + 哨兵 高可用环境搭建脚本(改进版)
Redis 主从 + 哨兵 高可用环境搭建脚本(改进版) #!/bin/bash
# ================================================
# Redis 主从 + 哨兵 高可用环境搭建脚本(改进版)
# ========================
Spring Boot + JWT实现登录认证,密码加密及Token校验全过程
Spring Boot + JWT实现登录认证,密码加密及Token校验全过程 项目简介 本项目是一个基于Spring Boot + JWT的前后端分离认证系统,使用拦截器而非过滤器进行JWT验证。项目包含用户注册、登录、JWT生成、Token验证、权限控制等完整功能。 JWT认证原理 通俗地说,J