LiuXi

个人博客

Octopress迁移到Hexo

1 起因 某次上网查找问题,找到一篇文章,发现也是一个静态的个人博客,用Hexo生成挂到了Github Pages上。 后面上网搜了下Hexo相关的文章,发现Hexo搭建的博客整体样式比Octopress好看很多,受众和文档也比较多。 然后开始折腾把Octopress迁移到Hexo 2 迁移 2.1 选择主题 迁移前,先去hexo官网选一个主题,或者上网搜索选一下主题 本博客现在使用的主题其......

Disruptor并发消费示例

在Rxjava并发示例中以一个实际的场景,介绍了RxJava并发消费的实现方式,下面根据同样的场景,实现Disruptor的并发消费。 先来回顾下场景,场景如下: 现需要根据一个商家列表获取各个商家下面的商品,然后根据每个商品,获取商品的价格 包含如下两个接口: 获取商品接口 : 入参是商家ID,出参是商品列表 获取商品价格接口 : 入参是商品ID,出参是价格 1 期望效果 期望效果和商......

Disruptor核心API和应用模式

上篇文章Disruptor框架简介主要介绍了Disruptor框架中的一些概念及实现方式 本篇文章主要针对Disruptor这个类的一些核心API进行说明,包括以下几个方面: 创建 事件处理 启动 事件发送 异常处理 关闭 同时本篇文章也会介绍Disruptor框架在实际应用中的一些模式,包括以下几个方面: 生产者端:支持单生产者和多生产者 消费者端:支持多线程并发消费、事件广播 消费......

Disruptor框架简介

Disruptor是由LMAX公司开源的一个基于内存的、在线程间传递数据的组件,以无锁化的方式实现数据传递的低延迟、高吞吐 上面的事件可以是消息、事件等,下面以事件这个名词进行继续说明,即线程间的事件传递 从上面的一句话总结可摘取出以下几个特点: 基于内存:即事件不持久化 线程间事件传递:即基于JVM的(并不是分布式)生成者/消费者模型 无锁化:多生产者/多消费者对临界资源的共享不以锁......

RxJava并发示例

上篇文章Rxjava并发有介绍Rxjava中实现并发的方案,本篇文章主要借一个实际的场景,来实践下并发执行的方案。 场景如下: 现需要根据一个商家列表获取各个商家下面的商品,然后根据每个商品,获取商品的价格 包含如下两个接口: 获取商品接口 : 入参是商家ID,出参是商品列表 获取商品价格接口 : 入参是商品ID,出参是价格 1 方案描述 1.1 期望效果 期望获取商品和获取价格都能并发......

RxJava并发

RxJava 在 GitHub 主页上的介绍是: "a library for composing asynchronous and event-based programs using observable sequences for the Java VM" 一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库 本篇主要探讨RxJava实现异步并......

Spring Cache Abstraction集成Redis

Spring Cache Abstraction提供了几种默认的第三方存储集成,实现了缓存注解的开箱即用。 而本篇要探讨的是自定义实现其他的第三方缓存的集成,特别是现在广泛使用的Redis或者某些公司自己实现的类Redis缓存。 spring_cache_abstraction作为一种缓存逻辑的抽象封装,实现方式上就是屏蔽底层缓存存储的细节,抽象了缓存管理和操作的接口,便于不同的第三方缓存的......

Spring Cache Abstraction实现原理

上篇文章 Spring Cache Abstraction简介 中介绍了 Spring Cache Abstraction支持的特性以及使用方式。 本文从源码的角度,分析下Spring Cache Abstraction注解方式的实现原理,主要包含以下几个方面: 注解驱动 代理类生成 注解处理 1 注解驱动 Spring Cache Abstraction支持注解的方式,但是要是注解生效......

Spring Cache Abstraction简介

Spring Cache Abstraction是对通过注解的方式对缓存逻辑的抽象与封装,而不涉及底层缓存存储的读写(仅提供几种默认的底层缓存存储的读写集成)。 场景: 一个典型的场景是获取数据库数据的需求,在读取数据库之前,先读取缓存,缓存有数据,则直接返回;没有数据则读取数据库数据后,回写缓存。 Spring Cache Abstraction提供的@Cacheable即可完成上述逻辑......

JAVA I/O模型及线程模型系列

通过对Netty的学习和了解,梳理下JAVA中支持的I/O模型以及常用的线程模型 JAVA I/O模型 JAVA对I/O的支持,包含 BIO、NIO 和 AIO,梳理详见如下: Java I/O简介 Java OIO NIO AIO简介 线程模型 常用的线程模型 Reactor 和 PReactor,详见: Reactor和PReactor线程模型 ...