自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解锁微服务的未来:Service Mesh 与 Istio 在 Kubernetes 中的应用与架构演变

Mixer( /ˈmɪksər/):负责访问控制,策略执行等,在最初的Istio的架构设计中,Mixer是中心化的组件,由于Mixer提供了各种访问控制策略,所以Mixer的负载压力比较大,发起请求之前做一次逻辑检查,请求结束后还需要上报处理,Mixer接收的请求至少涨了原始请求的2倍。)设计的、用C++11开发的代理和通信总线,作为服务网格中的数据面,负责服务间通讯和负载均衡, 健康检查,熔断,限流等功能,并且有强大的可观测性,包括metrics、tracing等。,可以看做是每个服务实例的proxy。

2024-12-20 09:03:57 973

原创 Kubernetes 生态揭秘:深度剖析服务与流量管理、Pod 创建,以及外部请求的响应之旅

kubernetes,简称为k8s(k12345678s)。用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的框架工具。K8S是Google开源的容器集群管理系统,在Docker等容器技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。kubernetes的本质是一组服务器集群。

2024-12-19 16:47:17 1115

原创 RabbitMQ的工作模型

RabbitMQ 其实一共有六种工作模式:简单模式(Simple)、工作队列模式(Work Queue)、发布订阅模式(Publish/Subscribe)、路由模式(Routing)、通配符模式(Topic)、远程调用模式(RPC)。其中发布订阅模式、路由模式、通配符模式这三种模型都属于订阅模式,只不过它们之间进行路由的方式不同罢了。远程调用模式是 RPC 不属于MQ,所以最终统计下来就是五种工作模式。

2024-12-19 09:47:15 1409

原创 Redis性能调优:深入剖析变慢原因及应对策略

如果观察到,这个实例的运行延迟是正常 Redis 基准性能的 2 倍以上,即可认为这个 Redis 实例确实变慢了。

2024-12-18 17:28:47 1485

原创 深入探究 Redis 集群:主从复制实现原理

Repl Backlog Buffer 是用来处理从节点与主节点之间的网络延迟和临时断开的情况。它会缓存主节点的命令,以便在从节点重新连接后能够获取这些命令并进行同步。具体来说,Repl Backlog Buffer 可以存储一定数量的写命令,以便在从节点恢复连接后,能够将这些命令发送给从节点,确保数据的一致性。其是一个「环形」缓冲区,如果写满会直接覆盖起始位置数据,跟mysql中的redo log双文件类似。

2024-12-18 17:00:09 1261

原创 MYSQL执行一条update语句,期间发生了什么

开启事务, InnoDB 层更新记录前,首先要记录相应的 undo log,因为这是更新操作,需要把被更新的列的旧值记下来,也就是要生成一条 undo log,undo log 会写入 Buffer Pool 中的 Undo 页面,不过在内存修改该 Undo 页面的时候,也需要将修改的信息保存到 redo log中,以便持久化。因为这是一条 update 语句,所以不需要经过查询缓存,但是表上有更新语句,是会把整个表的查询缓存清空的,所以说查询缓存很鸡肋,在 MySQL 8.0 就被移除这个功能了;

2024-12-17 18:03:51 640 1

原创 MYSQL中锁的类型以及如何排查锁

在 MySQL 数据库中,锁机制是维护数据一致性和完整性的关键要素。锁的存在确保了多个事务在并发执行时不会相互干扰,从而避免数据的混乱和不一致。在复杂的数据库环境中,了解 MySQL 中的锁类型及其排查方法显得尤为重要,因为这不仅可以帮助开发人员和数据库管理员优化数据库性能,还能有效地排除故障,提升系统的稳定性。

2024-12-17 17:53:48 1736

原创 从源码层级深入探索 Spring AMQP 如何在 Spring Boot 中实现 RabbitMQ 集成——消费者如何进行消费

RabbitAutoConfiguration,RabbitListenerAnnotationBeanPostProcessor,RabbitListenerEndpointRegistry,RabbitAnnotationDrivenConfiguration,RabbitBootstrapConfiguration,@RabbitListener,@RabbitHandler,mainLoop

2024-12-16 18:13:41 1475

原创 从源码层级深入探索 Spring AMQP 如何在 Spring Boot 中实现 RabbitMQ 集成——生产者如何将消息发送到 RabbitMQ Exchange

RabbitAutoConfiguration,RabbitAdmin,RabbitTemplate,declareExchanges,convertAndSend

2024-12-16 16:51:30 804

原创 深入源码剖析:Spring Security 授权码模式的工作原理

UsernamePasswordAuthenticationFilter,DaoAuthenticationProvider,Spring Authorization Server,Authorization Code Grant,OAuth 2.0,AbstractUserDetailsAuthenticationProvider,OAuth2TokenEndpointFilter,OAuth2LoginAuthenticationFilter

2024-12-13 16:33:23 1221

原创 深入解读 Spring Security 的设备授权码模式:底层运作原理

设备授权码,OAuth2DeviceVerificationEndpointFilter,OAuth2DeviceAuthorizationEndpointFilter,/oauth2/device_verification

2024-12-13 13:53:11 976

原创 深入剖析Spring Security: 底层源码视角下的初始化流程

Spring Security是一个全面的、高度可定制的安全框架,专为Java应用程序设计,旨在提供身份验证和授权功能,确保应用的安全性。它源自Acegi Security项目,后被整合进Spring生态系统并更名。该框架利用Spring AOP(面向切面编程)和Servlet过滤器来实施安全控制,支持多种安全策略和认证机制。再高版本的Spring Security中将授权功能进行了提取,形成了一个独立项目spring-authorization-server。

2024-12-11 18:22:29 1032

原创 深入源码层面:在 Spring Boot 和 Spring MVC 项目中实现全面请求记录与异常处理的拦截器与监听器分析

HandlerInterceptor,ServletRequestHandledEvent

2024-12-10 15:10:21 546

原创 深入源码:Spring Boot 内置 Tomcat 的实现机制分析

Spring Boot,Tomcat的组成,Connector,Container,AbstractApplicationContext,onRefresh(),AnnotationConfigServletWebServerApplicationContext,ServletWebServerApplicationContext,createWebServer,getWebServerFactory,getWebServer,WebServerStartStopLifecycle

2024-12-10 13:55:42 1229

原创 深入源码解析:Spring Boot 如何加载 Servlet 、Filter 与 Listener

TomcatStarter DispatcherServletRegistrationBean ServletWebServerApplicationContext

2024-12-09 18:19:53 1184

原创 Spring Boot自动装配与自定义Bean优先级的源码解析之旅

其实现离不开三个注解其校验阶段就是生成bd注入的时候进行的。经过上面的流程我们知道符合条件的配置类会依次执行loadBeanDefinitionsForConfigurationClass生成bd注入bdMap中,但是AutoConfigurationGroup实现了DeferredImportSelector进行了延迟导入,位于配置类集合的末尾。

2024-12-06 17:16:37 1235

原创 深挖Spring Boot:启动流程的源码解析之旅

Spring Boot 是一个快速开发框架,旨在简化基于 Spring 的应用程序的配置和开发。它通过自动配置、内嵌服务器和大量的开箱即用功能,帮助开发者快速构建和部署应用。在这一过程中,Spring Boot 的启动流程至关重要,了解其底层源码将有助于我们更好地理解其工作原理和设计理念。

2024-12-06 14:34:02 531

原创 从源码深入解析:Spring Boot与Spring MVC如何借由@RequestMapping注解精准定位请求路径至目标方法

RequestMappingHandlerMapping processCandidateBean detectHandlerMethods getMappingForMethod registerHandlerMethod RequestMappingInfo

2024-12-05 08:52:03 469

原创 探索Spring MVC SPI扩展机制:父子容器刷新原理

SPI(Service Provider Interface)扩展机制是一种服务发现机制,广泛用于 Java 编程中,允许框架或应用程序在运行时发现并加载外部提供的服务实现。SPI 主要通过接口定义服务,并通过配置文件和类加载器机制动态加载服务提供者(即具体的实现类)。在 Java 中,SPI 是基于反射和接口的一种插件式架构,使得框架能够在运行时根据需求替换或扩展服务实现。Spring MVC 利用 SPI 扩展机制来加载和管理各种组件,例如视图解析器、数据绑定、处理器映射等。

2024-12-04 15:43:17 804

原创 深入源码层面探究 Tomcat 的工作机制

在探讨 Tomcat 的工作机制之前,首先了解其基本架构是非常重要的。Tomcat 主要由以下几个核心组件构成:Connector: 负责处理与客户端的网络连接,接收请求并发送响应。Container: 负责管理 Web 应用的生命周期,包括 Context、Wrapper 和 Loader。Engine: 作为容器的核心,负责请求的路由和分发。

2024-12-04 10:42:09 391

原创 Tomcat 如何根据请求路径信息匹配相应的Servlet

MapperListener,Mapper,Wrapper

2024-12-03 16:41:30 543

原创 深入源代码,探秘Tomcat类加载机制:为何颠覆双亲委派原则(2)?

经过上面的初始化后,三个类加载器就已经创建完成,并且绑定了父子关系,那么如何将三个加载器恢复到老版本的关系呢,webappsClassLoader又是如何处理的呢。在这个项目中,您将发现对Tomcat源码的逐行分析,作者不仅提供了丰富的注释,还融入了自己独到的理解和见解。2.webappsClassLoader又是如何处理的呢。1.如何将三个加载器恢复到老版本的关系呢。

2024-12-02 15:50:31 244

原创 深入源代码,探秘Tomcat类加载机制:为何颠覆双亲委派原则(1)?

jvm启动后会通过其类装载子系统,去硬盘上找xxx.class文件,找到之后,会直接将xxx这个类装载到java虚拟机中,这个过程叫做类的加载。而类的加载过程中就涉及到了双亲委派。类加载机制的双亲委派(Parent Delegation Model)是Java中的一种类加载策略,旨在确保Java应用程序的安全性和一致性。加载顺序:当一个类加载器接到加载某个类的请求时,它首先会将该请求委派给它的父类加载器。如果父类加载器能够加载这个类,则请求返回给调用者;

2024-12-02 15:33:14 1300

原创 探索Socket的定义以及Tomcat如何运用Socket机制有效接收并处理客户端请求

3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给 客户端,一旦客户端确认了此描述,双方就正式建立连接。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远程主机的IP地址,远程进程的协议端口。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

2024-12-02 12:32:51 868

原创 理解ApplicationContext与BeanFactory的关系及BeanFactory的组成结构分析

可以看出IOC容器中包含一个beanFactory对象,而该对象的各个父类中又定义了很多属性值,包含我们的bdMap集合,bdName集合,单例池,singletonFactories三级缓存,earlySingletonObject二级缓存,servletContext应用上线文,beanPostProcessor实现类后置处理器集合等等,所以其并不是仅指单例池。在这个项目中,对Spring源码进行了逐行分析,作者不仅提供了丰富的注释,还融入了自己独到的理解和见解。

2024-12-01 14:04:11 211

原创 从源码角度深入剖析Spring Bean对象创建过程中各后置处理器的作用与实现原理

spring bean生命周期,BeanDefinitionRegistryPostProcessor、MergedBeanDefinitionPostProcessor、InstantiationAwareBeanPostProcessor、AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor

2024-12-01 12:54:32 459

原创 深入剖析AOP源码,全面理解面向切面编程的核心原理与实现机制。

Spring源码深入理解分析,AOP底层运行原理及实现机制,IOC容器刷新

2024-12-01 10:51:57 424

空空如也

空空如也

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

TA关注的人

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