Blog Archives

  • Dubbo源码分析(二)Invocation

    本文将主要围绕Invocation这个抽象概念进行讲解,首先来看一下相关的类图结构。 整体概念 Invocation,一次具体的调用,包含方法名、参数类型、参数 Result,一次调用结果,包含va […]

    阅读全文

  • Netty 3源码分析(四)Boss & Worker

    Boss和Worker是Netty 3中的工作线程,也是进行IO事件处理最核心的部分。 从类图中我们可以看到,Boss和Worker都继承自AbstractNioSelector,下面也将从这个公共 […]

    阅读全文

  • Netty 3源码分析(三)Bootstrap

    Netty 3的启动类主要分为ServerBootstrap和ClientBootstrap,如下图 Bootstrap类中本身的逻辑很少,但它维护了几个重要对象的引用 ChannelFactory […]

    阅读全文

  • Netty 3源码分析(二)Channel

    本文将介绍channel包下与Channel相关的核心概念。 一、Channel Channel对应于一个通信连接,用于完成bind、connect、write等操作,接收消息通过绑定的pipeli […]

    阅读全文

  • Netty 3源码分析(一)概览

    Netty是Java应用中最著名的通信框架之一,目前已经发布到了5.0版本,但3.0版本目前仍有很广泛的应用,其中也不乏很多经典的设计。所以笔者计划从Netty 3开始进行一些源码研究的工作,所使用 […]

    阅读全文

  • MessagePack实践总结

    和JSON类似,MessagePack也是一种No Schema的序列化方式,不必像Protobuf那样预先定义数据结构。但是它要比JSON更高效:使用字节类型的标识符表示数据类型和长度,序列化后的 […]

    阅读全文

  • Dubbo源码分析(一)启动Provider

    Dubbo是阿里巴巴开源的一个分布式服务框架,在阿里内部和其他公司都有广泛的应用,是目前比较成熟的一个服务框架。笔者将从源码层面对Dubbo进行分析,学习其中优秀的设计。 经过数年的沉淀,Dubbo […]

    阅读全文

  • ZooKeeper源码分析(二)网络通信

    无论是单机模式的ZooKeeperServer,还是集群模式的QuorumPeer,都是通过创建一个ServerCnxnFactory处理网络通信(Cnxn=Connection),它的实现类由cr […]

    阅读全文

  • Spring MVC中ViewName的选取规则

    通常情况下,Controller的mapping方法会返回一个ModelAndView对象来指定具体的view模板。但在方法返回值为void的情况下,spring mvc也会自动选取一个view n […]

    阅读全文

  • ZooKeeper源码分析(一)启动

    通过zkServer.sh启动ZooKeeper时,应用的统一入口为QuorumPeerMain。此处Quorum的含义是“保证数据冗余和最终一致的机制”,Peer表示集群中的一个平等地位节点。 [ […]

    阅读全文