Spring Boot集成disruptor快速入门demo springboot-demo

Spring Boot集成disruptor快速入门demo

1.disruptor介绍 什么是 Disruptor? Disruptor 是英国外汇交易公司 LMAX 开发的一个高性能的并发框架。可以认为是线程间通信的高效低延时的内存消息组件,它最大的特点是高性能。与 Kafka、RabbitMQ 用于服务间的消息队列不同,disruptor 一般用于一个 JVM 中多个线程间消息的传递。 从功能上来看,Disruptor 实现了“队列”的功...
阅读全文
Java各类日志组件分析汇总 编程技术

Java各类日志组件分析汇总

作为一名开发人员,相信大家对日志工具不会陌生 , Java 也 拥有功能和性能都非常强大的日志库; 不过这么多日志工具&第三方的包,怎样保证每个 组件里都能使用约定好的日志工具? 本文将和大家介绍一下  Java 主流的日志工具,以及相对应的使用场景。 基本介绍 在java的世界里有许多实现日志功能的工具,最早得到广泛使用的是 log4j,现...
阅读全文
2020 年 7 月编程语言排行榜 编程技术

2020 年 7 月编程语言排行榜

小提示:好久没送书了,文末送 6 本书。 TIOBE 2020 年 7 月份的编程语言排行榜已经公布,官方的标题是: R 语言的排名达到了历史最高位。 R 语言一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。也有人把 R 语言用作矩阵计算,其分析速度可媲美专用于矩阵计算的自由软件 GNU Octave 和商业软件 MATLAB,前段时间美国还禁止中国...
阅读全文
jvm内部缓存选型?一篇文章为你解答疑惑 编程技术

jvm内部缓存选型?一篇文章为你解答疑惑

jvm内部缓存有哪些 原生Java 简单的在HashMap的链式法增加新的引用形成一个链表,即是一个HashMap又是一个链表,这样输出即有序,也可以根据访问来动态调整顺序,达到FIFO或者LRU的特点。 使用ConcurrentHashMap作为缓存,没有淘汰功能或者手动淘汰。但是寻找效率较高,而且线程安全 可以明显看出这个存在的问题,线程不安全,需要额外加锁,功能结构单一,没有...
阅读全文
Java并发编程原理: 线程之间的互斥与协作机制 编程技术

Java并发编程原理: 线程之间的互斥与协作机制

可能在synchronized关键字的实现原理中,你已经知道了它的底层是使用Monitor的相关指令来实现的,但是还不清楚Monitor的具体细节。本文将让你彻底Monitor的底层实现原理。 管程 一个管程可以被认为是一个带有特殊房间的建筑,这个特殊房间只能被一个线程占用。这个房间包含很多数据和代码。 如果一个线程要占用特殊房间(也就是红色区域),那么首先它必须在Hallw...
阅读全文
全文检索原理 编程技术

全文检索原理

搜索简介 搜索实现方案 传统实现方案 根据用户输入的关键词(java), 应用服务器使用SQL语句查询数据库, 将查询到的结果返回给用户. 特点: 如果数据量很大, 用户量大, 数据库服务器压力随之增大, 导致查询速度变慢. Lucene实现方案 根据用户输入的关键词(java), 应用服务器通过Lucene提供的API查询索引库, 索引库返回搜索结果给应用服务器...
阅读全文
Disruptor 为什么那么快? 编程技术

Disruptor 为什么那么快?

一个简短的笔记。 Disruptor 快的核心秘诀是:基于数组、空间局部性良好、消除伪共享、无锁、支持批量消费。 1. 基于数组的内存局部性 Disruptor 底层是一个固定大小的环形数组,初始化的时候会顺序创建与数组长度一样数量的对象,以便让这些对象在内存上尽量挨着的。 顺序创建与随机创建在内存上的差别可以对比下面两张图(来自极客时间专栏《Java并发编程实战》): ...
阅读全文
新一代缓存Caffeine,速度确实比Guava的Cache快 编程技术

新一代缓存Caffeine,速度确实比Guava的Cache快

不羡鸳鸯不羡仙,一行代码调半天。原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。 我想把记忆缓存起来,等再次见到你,就能够很快认出你。 能够说出这么有哲理的话,得益于我对缓存的理解,以及对它的看重。没有了缓存,我的人生就没有了意义。 缓存是非常重要的,工作中大部分工作可以说是和缓存打交道。由于使用广泛,所以针对缓存系统的任何优化,如果能够提高一丁点儿性...
阅读全文
Loading...