排序
手把手教你配置React18调试环境
最近在优化React代码的过程中,发现对React底层逻辑不是很了解,就导致优化过程中没有明确的优化方向,做了很多的无用功。经过一番思考,我决定花费一些时间来进行React源码的学习。 在React源...
35.RocketMQ之Broker如何实现磁盘文件高性能读写
Broker读写磁盘文件的核心技术:mmap Broker中大量的使用mmap技术去实现CommitLog这种大磁盘文件的高性能读写优化的。 通过之前的学习,我们知道了一点,就是Broker对磁盘文件的写入主要是借助直...
15.Netty源码之EventLoop
Netty配置主从Reactor模式 通过将NioServerSocketChannel绑定到了bossGroup。 将NioServerSocketChannel接收到请求创建的SocketChannel放入workerGroup。 将2个不同的SocketChannel绑定到2个不...
源码学习之Spring容器创建原理 | 京东物流技术团队
1 前言 众所周知,Spring可以帮我们管理我们需要的bean。在我们需要用到这些bean的时候,可以很方便的获取到它,然后进行一系列的操作。比如,我们定义一个bean MyTestBean。 public class MyTe...
iOS 开发中如何禁用第三方输入法
iOS 目前已允许使用第三方输入法,但在实际开发中,无论是出于安全的考虑,还是对某个输入控件限制输入法,都有禁用第三方输入法的需求。基于此,对禁用第三方输入法的方式做一个总结。 1. 全局...
22.RocketMQ之NameServer启动流程
NameServerController启动流程总览 启动类:org.apache.rocketmq.namesrv.NamesrvStartup#main public static void main(String[] args) { main0(args); } public static NamesrvController mai...
2.JAVA中的I/O模型
JAVA中的I/O模型 I/O 模型:就是用什么样的通道或者说是通信模式和架构进行数据的传输和接收,很大程度上决定了程序通信的性能。 Java 共支持 3 种网络编程的/IO 模型:同步阻塞的BIO、同步非阻...
SpringCloud-Hystrix服务熔断与降级工作原理&源码 | 京东物流技术团队
先附上Hystrix源码图 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服...
33.Spring事务源码之整体流程
整体流程 第一步是注入自定义的事务管理器。 第二步是注入事务相关组件。 0.注入PlatformTransactionManager //默认的bean名称是 myPlatformTransactionManager @Component() public class MyPl...
30.RocketMQ之消费者拉取消息源码
消息拉取概述 消息消费模式有两种模式:广播模式与集群模式。 广播模式比较简单,每一个消费者需要拉取订阅主题下所有队列的消息。本文重点讲解集群模式。 在集群模式下,同一个消费者组内有多...
9.NIO非阻塞式网络通信入门
Selector 示意图和特点说明 一个 I/O 线程可以并发处理 N 个客户端连接和读写操作,这从根本上解决了传统同步阻塞 I/O 一连接一线程模型。架构的性能、弹性伸缩能力和可靠性都得到了极大的提升...
Java线程池源码完全解析
在源码解析之前,我们先思考一个问题:为什么要使用线程池? 如果不使用线程池,我们如何在程序中执行一些任务呢? 最显而易见的一种方式就是顺序执行,代码描述如下: public static void main...
第7节 Spring源码之 obtainFreshBeanFactory 方法
refresh()方法是Spring启动的核心方法,而obtainFreshBeanFactory()方法是该流程中的第二个核心方法,它的核心功能可以概括成以下两点: 创建一个BeanFactory对象,即DefaultListableBeanFactor...
37.RocketMQ之Broker消息存储源码分析
消息存储文件 rocketMQ的消息持久化在我们在搭建集群时都特意指定的文件存储路径,进入指定的store目录下就可以看到。 下面介绍各文件含义 CommitLog 存储消息的元数据。produce发出的所有消息都...
1.7Netty源码之writeAndFlush处理流程剖析
数据传输:writeAndFlush 处理流程剖析 Pipeline 事件传播回顾 当我们从客户端向服务端发送请求,或者服务端向客户端响应请求结果都属于出站处理器 ChannelOutboundHandler 的行为,所以当我们...
[SpringSecurity5.2.2源码分析八]:SecurityContextPersistenceFilter
前言 当我们不在其他线程而就在容器创建的线程中使用SecurityContextHolder.getContext()获取SecurityContext的时候,正常都能获取到 SecurityContext默认是放在线程中的,所以说在某个地方一定...
你是怎么学习 Java 技术的?
一、Java 语言 Java 语言不只是一门语言。 Java 学习不是一蹴而就就可以达成的,它是一个循序渐进,由浅入深,由表及里的过程。尤其需要注意的是不能有浅尝辄耻,不求甚解的态度。每个地方只抓...
23.RocketMQ之NameServer处理Broker心跳包,更新本地路由信息
NameServer处理Broker心跳包,更新本地路由信息 DefaultRequestProcessor继承自NettyRequestProcessor:处理各种客户端的请求,如果请求类型是为REGISTER_BROKER,则将请求转发到RouteInfoManager...
3.JAVA BIO深入剖析
1.JAVA BIO深入剖析 1.1 Java BIO 基本介绍 Java BIO 就是传统的 java io 编程,其相关的类和接口在 java.io BIO(blocking I/O) : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连...
spring源码2 — IOC整体脉络梳理
可以学习到什么? 0. spring ioc整体脉络 1. 描述BeanFactory 2. BeanFactory和ApplicationContext的区别 3. 简述SpringIoC的加载过程 4. 简述Bean的生命周期 5. Spring中有哪些扩展接口及调用机...