分布式 异地多活之Set化系统架构设计 异地多活是指在不同城市建立独立的数据中心,每个数据中心都可以承担业务,通过机器冗余的方式来实现在一个城市的机器都挂了的情况下,仍然有另外城市的机器可以工作。本文将介绍异地多活的Set化架构方案。
高并发 高性能系统设计之分库分表及平滑扩/缩容 在高并发的系统中,系统的TPS指标瓶颈的一般是来源于数据库。单机数据库的资源和处理能力有限。在高并发的分布式系统中,可采用分库分表突破单机局限。本文通过分库分表的相关概念、分片策略、平滑扩/缩容方案、读写分离架构,高性能系统设计进行介绍
Bug PriorityBlockingQueue在线程池中使用的异常 描述在实际生产中,PriorityBlockingQueue与ThreadPoolExecutor结合使用时所产生的问题,问题原因,以及解决方案
Java 自研Spring MVC(四) 该mvc模块的实现原理与Spring MVC相同,并且内嵌了EmbedTomcat,实现自定义的RequestHandleMapping以控制请求转发流程,完成了从请求到DispatchServlet,再转发由Controller处理的全链路流程
Java 自研Spring AOP2.0(三) 该aop2.0在aop1.0的基础上引入AspectJ全系列语法树支持,完成近乎和Spring相同的切点定义。介绍了AspectJ语法树的简单使用,注解是如何嵌入AspectJ语法树支持,以及较上个aop框架的对比
Java 自研Spring AOP(二) 该aop 1.0实现简易版aop能力,对于切点的定义较为简单,适合于新手理解aop的定义和实现方式,该版本中不支持AspectJ语法级别的切点定义,仅对某一特定注解标识的类生效,该aop模块提供jdk动态代理和cglib动态代理能力,但是并没有实现spring中动态选择jdk动态代理还是cglib动态代理能力,而是只能在jdk动态代码或者cglib动态代理中选其一
Java 自研Spring IOC(一) 该IOC提供以下功能,支持.Class文件的类资源识别和加载功能,暂时未实现jar包资源和网络资源识别,提供 @Controller @Service @Repository @Component 注解的bean定义,提供 @Autowired 注解实现注入能力,但仅支持Set方式注入,且要求注入目标类的构造函数均为无参构造函数,提供基础的容器管理能力
Java Java 8之自定义Stream收集器 本文将从以下几个方面介绍Stream的Collector实现。Stream基础收集功能演示,Stream收集原理分析,Collectors.toList(),Collectors.toMap(),Collectors.toSet()源码分析,Collectors.joining()源码分析,Collectors.reducing()源码分析,自定义Stream收集器演示
Java Java 8 双冒号的使用 双冒号表达式是对lambda表达式的进一步精简表达方式,可以使代码更加简单明了。但仅仅在某些特殊条件下lambda表达式才可以变换为双冒号表达式。笔者在此总结了在哪些情形下lambda表达式可以转换为双冒号表达式