Blog
Technical exploration and thoughts · 655 articles
RabbitMQ Connection/Channel Workflow Details
Deep dive into RabbitMQ Connection and Channel mechanism, AMQP frame structure packet capture analysis, and common issues and solutions under high concurrency.
RabbitMQ Work Queue and Fanout Pub/Sub Patterns
RabbitMQ Work Queue task queue load balancing practice and fanout publish-subscribe mode, including manual ACK, QoS flow control and temporary queue usage guide.
RabbitMQ Installation and Container Quick Start: Erlang, RPM
RabbitMQ production environment RPM installation tutorial, including Erlang compatibility configuration, Docker Compose quick start, common management commands and troubl...
RabbitMQ Producer/Consumer Workflow: Connection, Channel and ACK Mechanism
Complete producer and consumer workflow analysis for RabbitMQ, including Connection/Channel mechanism, default exchange behavior, message acknowledgment mechanism and com...
RabbitMQ Architecture and Exchange Routing Details
RabbitMQ architecture analysis and detailed explanation of four Exchange routing modes: fanout broadcast, direct exact, topic wildcard, headers multi-condition matching.
Java-201 RabbitMQ Message Persistence and Queue Index Details
Deep dive into RabbitMQ message persistence mechanism: queue index (.idx) + msg_store (.
RabbitMQ JMS Mode: Queue/Topic, 6 Message Types and Object Model
Java systems doing async decoupling and event-driven need unified understanding of JMS message model, object model and message types.
JMS Queue/Topic Cluster: Avoiding Duplicate Consumption
JMS Topic broadcasts in application cluster, causing same business to be repeatedly consumed by multiple nodes.
MQ Application: Cache Warm-up, Rate Limiting, Redis Lua and Traffic Peak Shaving
E-commerce seckill/ticket-grabbing scenarios with instantaneous traffic peaks, high read/write concurrency. Use pre-static + rate limiting queuing
Build MQ Prototype with BlockingQueue: Producer-Consumer Gap
Implement a minimal runnable message model with queue buffering and async decoupling using Java concurrency.
MQ Selection: RabbitMQ vs RocketMQ vs Kafka
Coexisting with traditional IBM MQ, need open source, operatable, scalable, consistency/reliability.
Distributed Communication: SOA/Dubbo, OpenFeign, Retry vs MQ
After distributed service splitting, inter-service communication evolved from synchronous calls to async decoupling, with retry, idempotency, and reliability patterns for...
Spymemcached Deep Dive: Thread Model, Sharding and Serialization
Java service integrating with Memcached needs to understand Spymemcached's thread model, sharding routing and serialization details.
EVCache Client Integration: Memcached Setup and Configuration
Java applications wanting to experience Netflix EVCache locally or in small teams, but server not open source, can only self-build based on Memcached.
EVCache Internal Principles: Memcached Architecture, Slab and Eviction
Using EVCache in large-scale distributed cache needs understanding of underlying Memcached memory management and eviction behavior.
Guava Cache Source Analysis: LocalCache, Segment and LoadingCache
Guava Cache is widely used in production, but many lack source-level understanding of LocalCache/Segment/LoadingCache behavior.
EVCache Introduction: Netflix-level Architecture and Multi-Region Cache
Want to learn Netflix's EVCache system for self-development, but only know it's 'Memcached-based distributed cache'.
Guava Cache: concurrencyLevel and refreshAfterWrite in Practice
Deep dive into concurrencyLevel, refreshAfterWrite and LoadingCache dynamic loading behavior, with horizontal comparison with custom LinkedHashMap LRU implementation.
Guava Cache Troubleshooting: OOM, Expiration and Hit Rate Issues
Using Guava Cache for local caching in Java projects, troubleshooting and fixing production issues like OOM, abnormal hit rate, thread blocking and performance regression.
Guava Cache: Deletion Strategy, Expiration and Common Pitfalls
Guava Cache uses 'lazy cleanup + LRU+FIFO' strategy. Passive deletion and active deletion need to be used together. Deep dive into expireAfterAccess, expireAfterWrite and...