15 21aspnet

尚未进行身份认证

专注csdn15年,Java JCP会员,公众号:无界编程

等级
博文 1k+
排名 13

不要千言万语,一组漫画让你秒懂最终一致性

直接上图如果你以前看过最终一致性的定义那么你一定会为这幅精彩漫画拍手叫好。你要是不知道什么是最终一致性你可以看看下面的权威定义,当然了网上关于什么是最终一致性的帖子铺天盖地,也许你已经很明白了,即使这样你是不是依然为此图欢呼?最终一致性是分布式理论中的重要,定义如下:最终一致性Eventualconsistency最终一致性是分布式计算中使用的一致性模型,用于实...

2019-06-14 18:02:37

分布式系统的现代消息传递

论文《分布式系统的现代消息传递》ModernMessagingforDistributedSytemsLMagnoni通过IOP出版有限公司出版许可物理学学报:会议系列,608卷,第1会议作者电子邮件luca.magnoni@cern.ch作者隶属关系1欧洲核子研究中心,欧洲粒子物理实验室(CERN),瑞士日内瓦引文LMagnoni2...

2019-06-13 15:29:27

Oracle和JCP社区批准我为Java JCP会员

大家好,我是OracleJavaJCP会员,我是个人会员,和Google和Apple,阿里巴巴,Facebook等企业会员并列参与Java社区规范的制定,关于Java有什么建议可以向我提出,如果合理我会反馈给社区,也许你的一个idea就是下一代Java的JSR。...

2019-05-07 13:35:55

经典算法书籍推荐以及算法书排行【算法四库全书】

经典算法书籍推荐以及算法书排行【算法四库全书】作者:无界编程https://linuxstyle.blog.csdn.net/https://blog.csdn.net/21aspnet行文方式:类似《四库全书》截取经典算法书目录和精华篇章版权说明:本文于2019年5月5日首发于CSDN,若有转载请务必保留版权,为了整理编排选择全文内容花费了2019年一个五一的时间。...

2019-05-05 20:14:35

valgrind massif检查长期闲置堆积导致的内存泄露

memcheck内存泄露是线上很严重也是比较常见的故障,内存泄漏问题,一般可以用memcheck工具来检查。http://valgrind.org/docs/manual/mc-manual.htmlMemcheck是一个内存错误检测器。它可以检测C和C++程序中常见的以下问题。 访问内存不应该,例如超越和不足堆积块,超出堆栈顶部,并在释放后访问内存。 使用未定义的值...

2019-05-02 00:29:09

好理解的Java内存虚假共享(False Sharing)性能损耗以及解决方案

虚假共享(FalseSharing)也有人翻译为伪共享参考https://en.wikipedia.org/wiki/False_sharing在计算机科学中,虚假共享是一种性能降低的使用模式,它可能出现在具有由高速缓存机制管理的最小资源块大小的分布式一致高速缓存的系统中。当系统参与者将定期尝试访问,将永远不会被另一方改变数据,但这些数据共享与数据的高速缓存块被修改,缓存协议可能迫使一...

2019-04-30 19:06:04

你需要知道的高性能并发框架Disruptor原理

Disruptor的小史现在要是不知道Disruptor真的已经很outer了,Disruptor是英国外汇交易公司LMAX开发的一款开源的高性能队列,LMAXDisruptor是一个高性能的线程间消息传递库,它源于LMAX对并发性,性能和非阻塞算法的研究,如今构成了其Exchange基础架构的核心部分。稍后,包括ApacheStorm、Camel、Log4j等在内的很多知名项目都集成...

2019-04-30 16:55:10

小而美的Nginx日志分析利器GoAccess

一般会把Nginx的日志导入日志系统进行实时或者准实时的分析,不过不是每个公司都有这样的环境,还有有时候临时就是想分析监控下Nginx,那么GoAccess就很适合你,这块工具小而美,功能很强大。GoAccess是一个开源的实时网络日志分析器和交互式查看器,可以在Linux/Unix系统中的终端或通过浏览器运行。它为需要动态可视化服务器报告的系统管理员提供快速且有价值的HTTP统计信息。...

2019-04-30 11:18:46

Flink在美团的应用与实践听课笔记

本文系《Flink在美团的应用与实践》的听课笔记原始视频视频资源已经在优酷公开:2018.8.11FlinkChinaMeetup·北京站-Flink在美团的应用与实践作者:刘迪珊@美团1.现状和背景实时平台架构最底层是数据缓存层,可以看到美团测的所有日志类的数据,都是通过统一的日志收集系统收集到Kafka。Kafka作为最大的数据中转层,支撑了美团...

2019-04-29 19:42:31

不同版本浏览器前端标准兼容性对照表以及CORS解决跨域和CSRF安全问题解决方案

CORS也已经成为主流的跨域解决方案,不过CORF也会引发CSRF,本文先分享第三方的一个前端工具箱全面展示那些浏览器版本支持CORS,由于各家浏览器厂商因为各自原因在不同的版本里支持的标准不同,这个工具小而美,可以清晰的比较不同版本浏览器前端技术兼容性对照表。先看图下面这个网站可以很方便的查看不同版本浏览器对CORS的支持力度,IE10,IE11,Chrome,Firefox,Safa...

2019-04-29 17:18:22

Linux内核的红黑树源码实现以及调用

红黑树可以说是程序员经常遇到的一种数据结构,不管是工作还是面试都会涉及,有时候还会让你写一段红黑树代码。本文主要是讲Linux中的红黑树,关于红黑树定义参考wiki:https://en.wikipedia.org/wiki/Red%E2%80%93black_tree其中《算法导论》中的定义最为清晰:红黑树图示:Linux中的红黑树(rbtree)下面...

2019-04-28 19:33:02

Java线上问题排障:Linux内核bug引发JVM死锁导致线程假死

Java本质上还是离不开操作系统,一来Java源码是用C/C++实现的,二来java进程还是需要依附于操作系统和硬件资源,有时候一些问题是操作系统级别导致的,下面的整个事件是源自一则真实的线上案例。过程:JVM死锁导致线程不可用,然后会瞬间起N个线程,当然起再多也是不可用的,因为需要的对象发生死锁,然后耗尽文件句柄导致外部请求也就是TCP连接无法建立产生拒绝服务,看起来就像线程假死...

2019-04-28 15:16:42

Flink 基本原理与生产实践分享【入门必读,概念清晰】

Flink基本原理与生产实践分享【入门必读,概念清晰】https://zh.wikipedia.org/zh-hans/Apache_FlinkApacheFlink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Fl...

2019-04-26 10:34:39

一个冷僻的知识点try直接返回finally里的设置null其实无效

先看引用类型的代码:importjava.util.HashMap;importjava.util.Map;publicclasstrycatchefinally{publicstaticvoidmain(String[]args){System.out.println(getMap().get("KEY"));}p...

2019-04-26 09:32:37

支撑Java框架的基础技术:泛型,反射,动态代理,cglib

以Spring为例要想看明白他的源码需要彻底理解Java的一些基础技术泛型,反射同时对于一些高级技术例如动态代理,cglib和字节码技术也需要掌握,下面就按章节来一一说清楚这些技术的核心部分,最后手写一个简单的Spring框架。一.静态代码块和非静态代码块以及构造函数的调用顺序静态代码块:https://stackoverflow.com/questions/2420389/s...

2019-04-22 10:29:24

JVM设置对象直接进入年老代

1.先说明一个事情就是在jdk1.8之后已经没有永久代被元空间取代,那么元空间在哪里?说明:元空间在本地内存,自然更不是所谓年老代等分代里。JavaPermGen去了哪里?Java虚拟机(JVM)使用其类的内部表示,包含每个类的元数据,如类层次结构信息,方法数据和信息(如字节码,堆栈和变量大小),运行时常量池和已解析的符号引用和Vtables。在过去(当自定义类加载器不常见时)...

2019-04-19 18:56:11

多线程并发编程需要注意虚假唤醒Spurious wakeup

虚假唤醒Spuriouswakeup如果等待线程在没有通知被调用的情况下唤醒,则称为Spuriouswakeup。解决方案就是:使用while条件判断,更好的方案是避免使用wait这种低级的API,而是使用高级的并发工具。因为这些高级的并发工具都是经过无数的坑才提炼出来的,如果你对底层缺乏深入的了解比如不知道虚假唤醒那么你没有做这种处理,你的代码可能会出问题。s...

2019-04-19 17:48:04

深入浅出Java反射原理和使用场景

反射非常重要,特别是Spring这类框架离不开反射,而反射对于初学者理解起来其实还是有一定的难度的,本帖希望把晦涩的反色用最易懂的方式给你讲明白。先不说反射是什么先看一个问题:如果不知道对象的真实类型怎么去调用他的方法?Objectobj=newDate();编译类型:Object运行类型(其实就是obj对象真实的类型):Date需求:根据对象obj调用Dat...

2019-04-19 16:38:56

合理估算线程池线程数量

参考《Java并发编程实战》线程数量计算公式公式:Nthread=Ncpu*Ucpu*(1+W/C),各字段含义:Nthreads:线程数量Ncpu:CPU的数量,Runtime.getRuntime().availableProcessors()Ucpu:CPU使用率,范围在[0,1]W/C:等待时间与计算时间的比率公式解读:其实就...

2019-04-18 15:24:15

Java一个线程能否结束另一个永不停止的线程

在Java中停止一个线程有三种办法:1.正常结束执行;2.发生异常;3.被其他线程stop(Java官方不建议)参考:https://docs.oracle.com/javase/8/docs/technotes/guides/concurrency/threadPrimitiveDeprecation.html为什么Thread.stop弃用?因为它本质上是不安全的。停...

2019-04-16 17:29:08
CSDN身份
  • 博客专家
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024超级勋章
    1024超级勋章
    授予原创文章总数达到1024篇的博主,感谢你对CSDN社区的贡献,CSDN与你一起成长。
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。