Recent Posts

分布式系统 - 服务治理(一) - 限流

前文已经说过限流的概念和用法。理解起来或用起来都没什么高深的,最终目的都是限制并发,控制流量。本文主要讲一下它的几种实现和要解决的问题。

分布式系统 - 服务治理 - 介绍

这系列文章会系统的说说一些服务治理的技术点,例如:限流、降级、熔断、隔离、路由 & 负载均衡、服务注册 & 发现 等等。又由于作者还没对分布式系统有啥全局的把握,所以只能逐点逐点的学习分析,对于已经掌握的,就暂时不再重复总结了。

学习Spring源码(三) AOP原理之实现篇

上一篇 已经说了Java动态代理的相关实现和原理,Spring AOP的核心技术是动态代理,但是Spring里的AOP模块比这复杂得多,包括前置通知,返回通知等一系列实现,这一篇,有了动态代理的基础,我们来看看Spring AOP模块是怎么实现的。

学习Spring源码(一) - IoC原理

系统的学习一下Spring原理,这篇首先说的是IoC,IoC是Spring框架最基本最核心的功能,其他任何功能都是基于IoC而存在的。

Linux下排查问题常用指令(一) - 进程相关

最近真是惭愧,很久没有写博客。一是进了新公司,工作太忙了;二是工作上已经压力也大了不少,业余时间就不想给自己太大压力,放纵自己懒一点。但是最近发现,业余时间学习,还是要系统的学,并且必须要有产出。所以接下来又会写一些博客,或者说学习笔记吧。

Java Nio(三) - 用NIO实现高性能socketserver

socket server是基于TCP协议的C/S通信模式下,服务器端的实现。一个socket server最主要的工作是处理网络IO,同事,高效处理网络IO也是一个socket server最重要的性能指标。

Java Nio(二) - 用NIO实现Reactor模式

本文跳过了介绍NIO的各个部件,直接进入了整合、实战的阶段。如果你对NIO中三个部件:selector、channel、buffer不熟悉,可以先看看这个系列。

Java Nio(一) - Unix IO模型

本系列介绍JAVA的NIO(New IO)系列接口。NIO通过几个部件(主要是:selector、channel、buffer),提供和传统IO不同的读写方式。它 同步非阻塞 IO。由NIO提供的接口看,它的设计思路和Unix的五个IO模型的其中一个:多路转接IO是一样的。所以,在学习具体的NIO代码实现之前,我...

从JMM层面说说Java并发(三) - ConcurrentHashmap(JDK1.6)

ConcurrentHashMap是JDK提供的一个线程安全的Map实现。在JDK1.6中,它使用锁分离和Segment的方法实现更小粒度的锁。而在JDK1.8版本中,ConcurrentHashMap基本放弃了这一做法,而是使用CAS算法实现。本文分析的是JDK1.6版本中的实现。

从JMM层面说说Java并发(二) - volatile

volatile关键字是用于线程间通讯的特殊字段。它保证一个线程对一个volatile变量的读,总是能看到(任意线程)对这个volatile变量最后的写入。也就是保证变量的可见性。另一点更重要的是,volatile读和volatile写之间有 happens-before关系。

从JMM层面说说Java并发(一) - 基础概念

为什么要理解JMM(Java Memory Model)模型?在了解JMM之前,我们谈论Java并发的一些问题,如synchronized关键词、volatile关键词等问题时,总是在很高层的抽象解释它们的机制,却无法解释其中的原理,甚至有一些谬误。特别是可见性的部分,如果不了解JMM,是根本无法解释的。JMM是...