TCP协议之拥塞控制
有了滑动窗口的流控,为什么还需要拥塞控制呢?前面关于TCP窗口的文章介绍了如何通过接收方窗口大小控制发送方窗口大小,以此来达到流控的目的,它对应的是TCP上层的协议。对于网络的拥塞情况是无法得知的?
Spring应用上下文刷新过程
当我们在使用Spring进行应用程序开发时,不管是Spring mvc,还是Spring Boot,Spring应用上下文刷新过程是一个非常重要的概念。在应用程序启动时,Spring会加载并初始化应用程序上下文,将所有配置的bean加载到内存中,然后将它们注入到应用程序中,具体怎么做的呢
dubbo
未读
Dubbo系列-SPI扩展(下)
前言 上一篇文章Dubbo系列-SPI扩展(上),通过对比JDK、Spring、Dubbo对SPI的不同实现,对它们的区别有一个全局的了解,其中Dubbo SPI实现最为复杂,其在整个框架设计与实现上发挥着极大的作用。 本篇会继续深入Dubbo SPI的其它特性,包括Dubbo3引入的作用域模型,及
dubbo
未读
Dubbo系列-SPI扩展(上)
前言 SPI(Service Provider Interface)是一种动态替换实现的机制,解耦接口与实现,大大提高了程序的可扩展性。对于框架来说,开闭原则(OCP)非常赞的诠释。 关SPI会分成上、下两篇来分析,本篇会从JDK、Spring、Dubbo三个SPI实现分析其原理及三者的区别;下一篇
java
未读
Stream使用建议
前言 Java8的特性Stream流,专门用于对一组数据进行处理的api,在日常开发中,使用比较普遍,但是在我们体验到Stream带来的便利的同时,也需要注意一些建议和风险。 更多关于Java8的特性介绍,可以查看另一篇文章> Stream体验 Stream目前被开发中所青睐的原因有如下几点: 1、
netty
未读
netty系列-事件循环源码分析
前言 本篇主要介绍Netty中一个重要的概念事件循环,及在非阻塞IO场景与事件循环相关的两个关键的类NioEventLoopGroup和NioEventLoop。文章切入点也是在服务器启动的主程序中。希望可以说清楚下面两点: 1、NioEventLoopGroup与NioEventLoop的概念与联
netty
未读
Netty系列-实现一个RPC框架
前言 Netty作为一款异步事件驱动的网络编程框架,具有高性能和易于开发的API。所以它在很多优秀的框架中都被选为网络通讯的组件,如ES、Dubbo等。本文基于Netty来实现一个简易版的PRC框架;一方面对Netty的实践做个记录,另一方面引出一款RPC框架都需要哪些基本的东西。 RPC简介 RP
netty
未读
Netty系列-服务端启动流程源码分析
前言 本篇主要基于Netty构建的Http服务器为切入点,通过阅读源码的方式来讲解其引导过程和各个组件的配置与创建过程。 代码对应Netty版本:4.1.106.Final 启动代码 先来看一个服务端例子: EchoServer启动类: /**
* Echoes back any received
netty
未读
Netty系列-组件
前言 本篇会通过一个示例引入Netty的相关组件,以及这些组件的关系,这也是Netty的核心,任何功能的扩展都是基于某个或某些组件。 一个例子 例子是实现一个服务端的http服务,其来源于github Netty example模块,代码地址>。 服务端启动入口: /**
* An HTTP se