标签:Disruptor

Java

Parallel Stream 的错误实践

1

尖兵 发布于 2020-01-19

一、前言 Java8 Stream 流的出现,极大的简化了业务需求中对集合数据的加工处理操作。虽然好用,但是一旦使用不当,也会带来意想不到的结果,本文记录使用 Parallel Stream 的错误实践。 List<Object> sourceList = ...; ...

阅读(86)评论(0)赞 (0)

Java

最强最全常用开发库 – 日志类库详解

6

xubiao.zhuang 发布于 2020-01-14

Java日志库是最能体现Java库在进化中的渊源关系的,在理解时重点理解日志框架本身和日志门面,以及比较好的实践等。要关注其历史渊源和设计(比如桥接),而具体在使用时查询接口即可, 否则会陷入JUL(Java Util Log), JCL(Commons Logging), Lo...

阅读(37)评论(0)赞 (0)

Java

SpringBoot+Redis布隆过滤器防恶意流量击穿缓存的正确姿势

20

hellas 发布于 2020-01-13

什么是恶意流量穿透 假设我们的Redis里存有一组用户的注册email,以email作为Key存在,同时它对应着DB里的User表的部分字段。 一般来说,一个合理的请求过来我们会先在Redis里判断这个用户是否是会员,因为从缓存里读数据返回快。如果这个会员在缓存中不存在那么我们会...

阅读(63)评论(0)赞 (0)

Java

通天塔性能优化实践

12

尖兵 发布于 2020-01-12

近年来通天塔的业务数据量和用户流量都呈现出了非常迅猛的增长趋势,为了解决历史架构设计中的不足,应对诸多因素引发的风险并保证通天塔平台的稳定运行,通天塔后端组专项成立了一个“通天塔后端技术优化组”,号召并鼓励团队每个人积极参与进来,全盘分析和梳理、技术设计和技术Review、形成技...

阅读(67)评论(0)赞 (0)

Java

SocketIO高性能事件驱动设计探索

11

puefu.he 发布于 2020-01-11

SocketIO高性能事件驱动设计探索 全文约7000字,预计阅读时间30分钟。 背景 SocketIO原生基于NodeJS实现的Web长连接技术方案,H5原生场景下通常使用websocket作为基础协议进行网络通信(客户端支持多语言),SocketIO对于长连接场景下的业务形态...

阅读(48)评论(0)赞 (0)

Spring

阿里的nacos+springboot+dubbo2.7.3集成以及统一处理异常的两种方式

34

小丁 发布于 2020-01-10

在网上很多关于dubbo异常统一处理的博文,90%都是抄来抄去。大多都是先上一段dubbo中对于异常的统一处理的原码,然后说一堆的(甚至有12345,五种)不靠谱方案,最后再说“本篇使用的是方案4”,然后再对所谓的方案4写了一段文字,最后还说不清!!! 本篇解决方案不会那么罗里吧...

阅读(48)评论(0)赞 (0)

Java

Disruptor的简单介绍与应用

3

hellas 发布于 2020-01-07

前言 最近工作比较忙,在工作项目中,看了很多人都自己实现了一套数据任务处理机制,个人感觉有点乱,且也方便他人的后续维护,所以想到了一种数据处理模式,即生产者、缓冲队列、消费者的模式来统一大家的实现逻辑。 下面时是对Disruptor基本使用的演示。使用中需要引入依赖 <de...

阅读(37)评论(0)赞 (0)

Java

Log4j2异步日志之异步格式化

xirruiqiang 发布于 2020-01-07

在优化系统响应时间的时候,除了优化业务逻辑/代码逻辑之外,把日志改成异步也是一种不错的方案 Log4j2在异步日志的性能上已经无人能挡了,其异步效率高的主要原因是使用 disruptor 来做异步队列 但是很多业务系统,尤其是核心业务系统,需要打印详细的报文和处理参数来追踪问题;...

阅读(34)评论(0)赞 (0)

Java

Disruptor-高性能线程消息传递框架

9

尖兵 发布于 2019-12-31

一、前言 听到队列相信大家对其并不陌生,在我们现实生活中队列随处可见,去超市结账,你会看见大家都会一排排的站得好好的,等待结账,为什么要站得一排排的,你想象一下大家都没有素质,一窝蜂的上去结账,不仅让这个超市崩溃,还会容易造成各种踩踏事件,当然这些事其实在我们现实中也是会经常发生...

阅读(40)评论(0)赞 (0)

Java

《Java异步编程实战》隆重上市!!!

1

尖兵 发布于 2019-12-22

0.1为何写作本书 异步编程是可以让程序并行运行的一种手段,其可以让程序中的一个工作单元与主应用程序线程分开独立运行,使用它有许多好处,例如可以提高应用程序的性能和响应能力。 虽然Java中不同技术域提供了相应的异步编程技术,但是对异步编程技术的描述散落到了不同技术域的技术文档中...

阅读(93)评论(0)赞 (0)

Java

高性能队列 Disruptor 使用教程

hanze 发布于 2019-12-16

Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年在 QCon 演讲后,获得了业界关注。20...

阅读(38)评论(0)赞 (0)

Java

聊聊java中那些各式各样的quene

1

hanze 发布于 2019-12-12

队列真的是一个非常nice的数据结构,有序,规则,可以给与缓冲,就像人们心中那种秩序社会一样,那么这期小威哥就来粗浅的聊聊java中那些常见的quene。 2:各种常见quene对比 2.1:对比表格 队列 数据结构 边界 并发特征 特点 ArrayBlockingQueue 数...

阅读(37)评论(0)赞 (0)

Java

JDK源码那些事儿之ConcurrentLinkedDeque

11

hanze 发布于 2019-12-08

非阻塞队列ConcurrentLinkedQueue我们已经了解过了,既然是Queue,那么是否有其双端队列实现呢?答案是肯定的,今天就继续说一说非阻塞双端队列实现ConcurrentLinkedDeque 前言 JDK版本号:1.8.0_171 ConcurrentLinked...

阅读(54)评论(0)赞 (0)

Java

JVM面试——运行结构(附测试题)

4

yeseng 发布于 2019-11-22

JVM 结构 这篇主要了解 JVM 内在的运行结构是怎么样的。 虚拟机的意义 Java 作为一门高级程序语言,它的语法非常复杂,抽象程度也很高。因此,直接在硬件上运行这种复杂的程序并不现实。所以呢,在运行 Java 程序之前,我们需要对其进行一番转换。 Java 虚拟机可以由硬件...

阅读(58)评论(0)赞 (0)

Java

程序设计的5个底层逻辑,决定你能走多快

11

xirruiqiang 发布于 2019-11-22

肉眼看计算机是由CPU、内存、显示器这些硬件设备组成,但大部分人从事的是软件开发工作。计算机底层原理就是连通硬件和软件的桥梁,理解计算机底层原理才能在程序设计这条路上越走越快,越走越轻松。从操作系统层面去理解高级编程语言的执行过程,会发现好多软件设计都是同一种套路,很多语言特性都...

阅读(63)评论(0)赞 (0)

Java

程序设计的5个底层逻辑,决定你能走多快

21

hanze 发布于 2019-11-22

阿里妹导读: 肉眼看计算机是由CPU、内存、显示器这些硬件设备组成,但大部分人从事的是软件开发工作。计算机底层原理就是连通硬件和软件的桥梁,理解计算机底层原理才能在程序设计这条路 上越走越快,越 走越轻松。从操作系统层面去理解高级编程语言的执行过程,会发现好多软件设计都是同一种套...

阅读(60)评论(0)赞 (0)

Java

一篇文章教你如何设计一个百万级的消息推送系统

15

Harries 发布于 2019-11-14

前言 先简单说下本次的主题,由于我最近做的是物联网相关的开发工作,其中就不免会遇到和设备的交互。 最主要的工作就是要有一个系统来支持设备的接入、向设备推送消息;同时还得满足大量设备接入的需求。 所以本次分享的内容不但可以满足物联网领域同时还支持以下场景: 基于 WEB 的聊天系统...

阅读(65)评论(0)赞 (0)

Java

并发编程之Disruptor并发框架

3

wenming.gapo 发布于 2019-10-24

一、什么是Disruptor Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务...

阅读(43)评论(0)赞 (0)