Friday, October 5, 2018

Disruptor



http://mechanitis.blogspot.com/2011/06/dissecting-disruptor-whats-so-special.html

https://zhuanlan.zhihu.com/p/45100690
为了提高系统的吞吐量,通常会采用队列来实现批量处理,发布订阅模式,异步等场景。在JDK的内置队列中,一般实际中会使用 ArrayBlockingQueue,一方面是有界的,另一方面是通过加锁实现的线程安全,比如在使用线程池的时候最佳实践就是指定了一个 ArrayBlockingQueue 作为任务队列。
LMAX公司开发的 Disruptor 通过无锁(CAS),避免缓存行伪共享,环形数组(RingBuffer)实现了更高的性能,Storm,Log4j2中都使用了 Disruptor。
github搜索 mampa。基于distuptor的有限状态机实现。


https://zhuanlan.zhihu.com/p/45575008

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts