- 博客(330)
- 资源 (10)
- 收藏
- 关注
原创 Netty 从netty角度分析http协议解析(二)Post方法协议解析HttpPostRequestDecoder
Netty 从netty角度分析http协议解析(二)Post方法协议解析HttpPostRequestDecoder
2020-12-21 22:28:40 3852
原创 Netty 解决粘包半包 解码器ByteToMessageDecoder
什么是粘包半包?tcp是基于报文的协议,当使用netty传输数据时,可能一次读数据不是一个完整的数据,可能读取的是一半或者多余具体应用层数据的数据。如何解决这样的问题呢?可以用一个全局缓存池,每次解码器进行解码时,只能解码一个完整数据,不够或者多余则放到下次解码。ByteToMessageDecoder 就是这样解决这样的问题的。
2020-12-14 23:18:43 2920
原创 Netty 内存模型分析(三)PoolThreadCache 分析
在同一个 ByteBufAllocator 去分配内存,并且管理者同一块内存,如果存在并发申请或释放,netty 是如何设计内存池的并发特性的呢?本文基于 4.1.38.Final 版本PoolThreadLocalCache类定义:final class PoolThreadCache { private static final InternalLogger logger = InternalLoggerFactory.getInstance(PoolThreadCache.class
2020-12-08 23:16:57 550
原创 Netty 中 FastThreadLocal 分析
前一篇文章简单分析了Netty中`PooledByteBuf` 相关结构,本文将围绕 `FastThreadLocal ` ,来分析netty中当前线程分配内存的设计。
2020-12-08 23:16:18 346
原创 Netty 内存模型分析(二)PooledByteBuf 分析
前面一篇主要研究了` UnpooledByteBuf` 主要工作原理,本文主要探讨 `PooledByteBuf` 相关。本文主要从以下几个方面梳理了PooledByteBuf:1. `PooledByteBuf ` 构成2. `PoolChunk` 组织形式3. `PoolChunk` 申请大内存和小内存,以及 `PoolSubpage` 组装构成4. 池化内存`PooledByteBuf` 分配过程及,分配完后使用原理使用研究。
2020-12-06 22:00:27 938
原创 Netty 内存模型分析(一)ByteBuf总览
本文开始,将主要围绕netty相关知识展开,力求从宏观上把握整个内存结构。ByteBuf为了解决NIO 中 ByteBuffer 使用不当问题,例如读模式写模式不能同时进行,无法自动扩容等。Netty 新建了一种字节容器ByteBuf。在 ByteBuf 中,定义有 readerIndex,writerIndex 和 capacity 。内部组织结构如下:即可读区域、可写,以及容量。对于 ByteBuf 更好的理解是一个接口(虽然是抽象类),因为里面大部分方法都是abstract。Abstr
2020-12-05 23:16:42 454
原创 Netty Server端启动分析(三)register0和 doBind0分析
上篇中,整体分析了`doBind`方法,但是遗留了 `register0` 和 `doBind0` 方法。
2020-11-17 23:15:34 543 2
原创 Netty Server端启动分析(二)doBind分析
上一篇文章中,研究了 NioEventLoopGroup 到底是什么,本文主要从bind方法入手。属性设置属性设置即设置为channel设置一些参数: ServerBootstrap serverBootstrap = new ServerBootstrap(); serverBootstrap.group(group) .channel(NioServerSocketChannel.class)
2020-11-16 23:17:11 258
原创 Netty Server端启动分析(一)EventLoopGroup和 EventLoop分析
本文将以 Java Netty 学习(七) 为例,分析下netty服务端启动分析。EventLoopGroupEventLoopGroup 可以理解为EventLoop的Group,可以理解为线程组。默认线程数 DEFAULT_EVENT_LOOP_THREADS = Math.max(1, SystemPropertyUtil.getInt( "io.netty.eventLoopThreads", NettyRuntime.availableProc
2020-11-15 22:15:18 372
原创 Spring-聊聊Spring Cloud配置动态更新Nacos篇
有用过Nacos小伙伴应该清楚,在Spring Cloud项目中,可以动态更新配置类的值,例如下面场景。我们在使用 Spring Cloud Gateway时,向做一个开关,如果新项目上线凌晨上线,测试还在验收,需要做一套ip白名单,这样场景下,就可以利用配置中心,当验收通过后,再更新对应变量值,实现动态配置。本文将从配置加载、配置动态刷新两个角度进行分析。配置加载上一篇文章,研究过Spring 启动时 prepareEnvironment 方法过程,其中最后留下的疑惑为,加载完bootstrap后
2020-11-08 23:45:04 1496
原创 Spring-聊聊application.yml和bootstrap.yml
用过Spring 的小伙伴都知道,application.yml或者application.properties 是Spring 的引导配置文件,但是有了解过其中区别吗?本文将给从这个问题入手,深入源码中,研究application.yml和bootstrap.yml到底有什么区别。配置首先,我们在程序中,可以通过 spring.profiles.active 来制定生效的配置类,这样可以来区分配置。其次,可以通过更改 spring.config.name 来更改引导的配置文件名字,例如可以将 an
2020-11-02 23:23:43 1209 2
原创 Dubbo-聊聊服务端线程模型
Dubbo作为一个优秀的RPC框架,以SPI方式抽象架构,可以自由选择通信层框架,已实现的有Netty、Netty4和Mina。Dubbo 有提供线程模型的官方文档:http://dubbo.apache.org/zh-cn/docs/user/demos/thread-model.html本文深入源码,尝试解析dubbo线程模型具体细节。对于dispatcher参数,有以下几种可选项:all 所有消息都派发到线程池,包括请求,响应,连接事件,断开事件,心跳等。direct 所有消息都不派发到
2020-08-16 23:42:51 483
原创 Spring(二十二)Spring MVC 对Tomcat 的 Servlet,Filter和Listener 组装分析
博主从Spring Boot 去看Spring MVC 启动过程,而Spring Boot 默认集成了内置的tomcat容器,所以分析Spring MVC ,中间还夹着挺多Tomcat逻辑。Java web中有三大组件:ServletFilterListener记得开始学习Java Web时候,就是通过这几个入门的,定义Servlet用于处理Http请求,定义Filter来对请求进行拦截,而使用ServletContextListener 来监听容器创建和销毁动作。本文主要基于Tomcat
2020-08-12 13:53:09 367
原创 Spring(二十一)Spring 声明式事务研究
有没有觉得在Spring 中使用事务很简单,完全不用了解事务,只知道需要加事务地方,加上 @Transactional 注解就好了。是不是很简单?但是,正因为封装的这么好,开发人员集中精力在业务开发上,那么很有可能忽略很多数据库一些特性以及觉得对 @Transactional 很了解,就是事务嘛。以下几个问题可以思考下:数据库事务隔离级别有哪些?@Transactional 操作事务隔...
2020-08-11 19:40:45 271
原创 Spring(二十)Spring AOP createProxy 创建CGLIB代理 过程-下篇
上篇文章分析了CGLIB创建代理的逻辑结构,但是感觉CGLIB比JDK生成代理复杂很多,而且上篇文章没有深入,本文将深入了解 CGLIB创建过程,本文包含包含CGLIB创建代理的逻辑代码有点多,但是确实复杂!总不能Spring 替我们生成了类,而我们不知道它具体长啥样子吧。Object proxy = createProxy(bean.getClass(), beanName, specifi...
2020-08-10 12:02:36 625
原创 Spring(十九)Spring AOP createProxy 创建CGLIB代理 过程-上篇
上一篇详细分析了分析了Spring AOP中使用 JDK 动态代理过程,本文将详细关注使用CGLIB情况。Spring AOP 中,使用CGLIB作为代理生成工具时,入口仍然在 : @Override public AopProxy createAopProxy(AdvisedSupport config) throws AopConfigException { if (config.i...
2020-08-10 12:02:14 396
原创 Spring(十八)Spring AOP createProxy 创建JDK代理 过程
Spring(待定)Spring AOP createProxy 创建代理 过程
2020-08-07 21:39:16 493
原创 Spring(十七)Spring AOP 原理探究-aop解析入口分析
上一篇文章主要介绍了Spring AOP一些简单用法,当然如果要了解更多,可以选择再去看看Spring 文档。博主还是喜欢从源码中知其所以然嘿嘿。Spring-boot-starter-aop博主以 Spring-boot-starter-aop 为例,开始分析。...
2020-05-21 22:53:03 617
原创 Spring IOC(十四)Dubbo 与Spring 集成 - @Reference和@Service 原理
上一篇文章围绕 @EnableDubbo 进行了深入的分析,本篇文章将重点看@Service和@Reference 原理。
2020-05-17 23:04:05 690
原创 Spring IOC(十二)@Import和 @PropertySource 注解研究
@Import和 @PropertySource 了解一下?
2020-05-11 22:41:39 344
原创 Spring IOC(八)CommonAnnotationBeanPostProcessor 原理分析
@Resource 和@PostConstruct 注解用过,有没有看看原理呢?
2020-04-24 23:36:11 1917
原创 Spring IOC(六)AutowiredAnnotationBeanPostProcessor 原理分析
ImportAwareBeanPostProcessor
2020-03-26 23:14:59 5804 1
原创 Spring IOC(五)BeanFactory.getBean 方法分析
Spring 容器帮程序管理Bean,而实际上最终是由BeanFactory 管理的,本文就具体分析getBean方法。重载方法Spring 提供以下方法获取bean实例,当然大同小异:getBean以 传入 classType为例,当调用 getBean:204, AbstractBeanFactory,进入 AbstractBeanFactory 的 getBean 方法: @Ov...
2020-03-24 23:32:40 1427 1
原创 Spring IOC(四)ConfigurationClassPostProcessor 用法分析
ConfigurationClassPostProcessor
2020-03-23 23:16:41 456
原创 Spring IOC(三): refresh 分析 invokeBeanFactoryPostProcessors 过程
Spring 中工厂处理器执行逻辑(BeanFactoryPostProcessor)
2020-03-23 23:09:46 271
原创 Spring IOC(二): refresh 分析 prepare过程
本文继续跟着上一篇文章走,开始分析 AbstractApplication 的 refresh 方法。
2020-03-18 21:57:40 358
原创 Mybatis 拦截器 及 PageHelper分析
有听过 Mybatis 拦截器吗?GitHub 超 8k star 项目 PageHelper 是怎样实现的呢?
2019-12-04 23:26:58 1819
Spring Cloud-Eureka-docker
2018-06-09
将Spring boot应用打包成镜像放到docker中运行
2018-04-14
1004. Counting Leaves (30)
2017-01-04
安卓httpClient例子
2016-06-22
数据库相关jar包
2015-03-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人