0%

在数据库系统中,索引是优化查询性能、保障服务稳定性的关键技术组件.尤其在数据量激增的现代应用场景下,缺乏有效的索引设计往往会导致查询性能急剧下降,进而影响整个应用的响应能力.深入理解索引的工作原理与实现机制,是每一位后端工程师和数据库管理员必须具备的核心技能.

阅读全文 »

在Spring中,如果一个Bean尝试将自身引用注入到自身中或是多个微服务之间存在循环的引用,Spring会抛出BeanCurrentlyInCreationException异常,这被称为循环依赖问题.
循环依赖问题

阅读全文 »

在分布式架构中,缓存是平衡性能与数据库压力的关键组件.然而,简单地引入 Redis 并不等于高枕无忧,错误的缓存策略反而会成为系统中最致命的单点.

缓存穿透、缓存击穿与缓存雪崩正是三种典型且破坏性极强的缓存失效场景,它们极易在高并发下导致数据库被打穿、服务雪崩式宕机.

本文将从技术原理层面深入剖析这三种问题的本质区别,并提供从代码到架构的多层级解决方案,包括但不限于:

  • 布隆过滤器(Bloom Filter)应对穿透
  • 互斥锁(Mutex Lock)与逻辑过期化解击穿
  • 密钥过期时间分散化与熔断降级策略预防雪崩
    帮助你构建一个兼具高性能和高可用的健壮缓存系统.
阅读全文 »

在使用ES索引搜索时,我们需要同步ES和mysql数据库中的数据,常见的索引数据同步方案有两种:同步方式和异步方式。
同步流程

阅读全文 »

前端请求网关根据请求路径路由到微服务,网关从nacos获取微服务实例地址将请求转发到具体的微服务实例上.
现在要根据需求使用Java在网关实现路由转发和用户身份认证的功能:

  • 根据请求Url路由到具体的微服务
  • 校验用户的token,取出token中的用户信息
  • 从nacos中取出服务实例进行负载均衡
    所以使用java开发的网关,如
  • Spring Cloud Gateway:基于Spring的WebFlux技术,完全支持响应式编程,吞吐能力更强
  • NetFlix Zuul:早期实现,已淘汰
    网关架构图
阅读全文 »

OpenFeign技术可以让远程调用像本地方法调用一样简单,OpenFeign是一个声明式的HTTP客户端框架,它简化了编写 REST 客户端的过程

阅读全文 »

RabbitMQ是基于Erlang语言开发的开源消息通信中间件消息队列MQ的一种,支持AMQP协议(SpringBoot支持AMQP协议).
RabbitMQ架构

阅读全文 »