Programmer1970
Author

Programmer1970

Formerly called 'Code to 35'. Add our main WeChat ID to access a wealth of shared resources (algorithms, interview prep, tech stacks: Java, Python, Go, big data). We mainly share serious development techniques, focusing on output-driven input. Occasionally we post life snippets and gossip. Our aim is to attract precise traffic and test advertising opportunities.

120
Articles
0
Likes
2
Views
0
Comments
Recent Articles

Latest from Programmer1970

100 recent articles max
Programmer1970
Programmer1970
Jul 21, 2026 · Backend Development

How to Cut RocketMQ Consumer Latency from 10 s to 500 ms with Five Overlooked Settings

During a traffic peak the order service saw 30‑second consumer latency and a backlog of over 20 000 messages; by adjusting five RocketMQ consumer parameters—pullBatchSize, consumeThreadMin/Max, adjustThreadPoolNumsThreshold, pullTimeoutMillis, socketTimeoutMillis, and consumeMessageBatchMaxSize—the team reduced end‑to‑end latency to 500 ms, raised TPS to over 2500, and cleared the backlog.

ConfigurationPerformance TuningRocketMQ
0 likes · 9 min read
How to Cut RocketMQ Consumer Latency from 10 s to 500 ms with Five Overlooked Settings
Programmer1970
Programmer1970
Jun 29, 2026 · Backend Development

How We Cut Full GC from 10 seconds to 200 ms: A Complete JVM GC Tuning Guide

A production outage at 3 am revealed a 10‑second Full GC pause on an 8 GB heap; the article walks through evidence collection, heap‑size rebalancing, switching to G1, fine‑tuning G1 parameters, and code changes that together reduced Full GC pauses to 200 ms and improved latency dramatically.

Full GCG1 GCGC Tuning
0 likes · 12 min read
How We Cut Full GC from 10 seconds to 200 ms: A Complete JVM GC Tuning Guide
Programmer1970
Programmer1970
Jun 1, 2026 · Fundamentals

Why ZGC Pauses Stay Under 1 ms: Inside Colored Pointers and Load Barriers

The article explains how ZGC achieves sub‑millisecond pause times by embedding GC state in pointer bits (colored pointers) and using JIT‑injected load barriers that fix references on first access, comparing this approach with G1 and Shenandoah and detailing ZGC 2.0 enhancements and known pitfalls.

Colored PointersConcurrent GCGarbage Collection
0 likes · 11 min read
Why ZGC Pauses Stay Under 1 ms: Inside Colored Pointers and Load Barriers
Programmer1970
Programmer1970
May 31, 2026 · Fundamentals

Why synchronized is slower – tracing its roots from MESI cache coherence

The article demystifies why Java's synchronized keyword can be slower by tracing the full path from CPU cache‑coherence (MESI) through bus and cache locks, volatile, biased and lightweight locks, up to the heavyweight monitor implementation, revealing each layer’s impact on visibility, ordering and atomicity.

JVMJavacache-coherence
0 likes · 15 min read
Why synchronized is slower – tracing its roots from MESI cache coherence
Programmer1970
Programmer1970
May 27, 2026 · Backend Development

Ultimate Cache Consistency Solution for Billion‑Scale Traffic: Canal + MQ + Local Cache

At billion‑level request rates, the traditional cache‑aside pattern fails, so the article proposes a three‑layer architecture—Canal captures MySQL binlog, an MQ (RocketMQ/Kafka) buffers changes, and a coordinated local cache service updates L1 caches with short TTL, achieving high performance and eventual consistency.

Cache ConsistencyCanalDistributed Architecture
0 likes · 12 min read
Ultimate Cache Consistency Solution for Billion‑Scale Traffic: Canal + MQ + Local Cache
Programmer1970
Programmer1970
May 26, 2026 · Backend Development

7 Distributed Lock Implementations and Real‑World Pitfalls

The article explains why local locks fail in multi‑machine deployments, defines the three essential properties of a correct distributed lock, walks through seven Redis‑based lock solutions with code samples, highlights common production pitfalls, and provides a decision tree for selecting the right approach.

Java concurrencyRedLockRedis
0 likes · 10 min read
7 Distributed Lock Implementations and Real‑World Pitfalls
Programmer1970
Programmer1970
May 25, 2026 · Backend Development

How a Full GC Spike Turned 50 ms P99 Latency into 3 s – Full Investigation

When a monitoring alarm showed the /api/order/create endpoint’s P99 latency jump from under 50 ms to over 3 s, the team traced the root cause to a Full GC storm caused by an unbounded static HashMap cache, using Arthas, heap dumps, MAT analysis, and finally applied both quick‑fix and permanent code changes to restore performance.

ArthasCaffeineEclipse MAT
0 likes · 8 min read
How a Full GC Spike Turned 50 ms P99 Latency into 3 s – Full Investigation
Programmer1970
Programmer1970
May 24, 2026 · Operations

Full-Stack Guide to Tracing RocketMQ Message Loss

This guide walks you through the entire lifecycle of a RocketMQ message, identifies where loss can occur, provides step‑by‑step diagnostics using TrackType and timestamps, and offers concrete configuration, command‑line and recovery strategies for producers, brokers and consumers.

BrokerConfigurationConsumer
0 likes · 11 min read
Full-Stack Guide to Tracing RocketMQ Message Loss
Programmer1970
Programmer1970
May 20, 2026 · Fundamentals

Only 5 of Java 21’s 15 New Features Actually Change Your Code

Java 21, the latest LTS release, adds fifteen JEPs but only five—virtual threads, record patterns, switch pattern matching, string templates, and sequenced collections—significantly alter coding style, offering lightweight concurrency, concise data deconstruction, modern switch syntax, powerful string interpolation, and enhanced collection APIs.

Java 21Record PatternsSequenced Collections
0 likes · 8 min read
Only 5 of Java 21’s 15 New Features Actually Change Your Code