Skip to main content
Apache Wangye

Apache Wangye

Writing code, exploring systems, and documenting practical solutions.

Products

Products I am building

Small, useful products backed by the engineering notes on this site.

In development

Cloud Album

A private cloud photo album for overseas users, focused on backup, organization, and subscription-ready experiences.

A real product journey covering the iOS client, MinIO storage, overseas payments, and growth experiments.

iOS AppMinIO storageOverseas subscription

Blog

Latest posts

Build a RocketMQ Cluster

· One min read
Apache Wangye
Software developer and technical writer

A RocketMQ cluster normally uses multiple independent NameServers and one or more broker groups. Each broker group has a stable brokerName; broker ID 0 is the primary and nonzero IDs are replicas in older master/slave terminology.

RocketMQ Quick Start

· One min read
Apache Wangye
Software developer and technical writer

RocketMQ is a distributed messaging platform built around NameServer discovery, brokers that store messages, producers, consumers, topics, and message queues.

Essential Java Startup and JVM Arguments Explained

· 2 min read
Apache Wangye
Software developer and technical writer

This note explains a typical Java startup command used while running load tests on Linux:

java -server \
-XX:+HeapDumpOnOutOfMemoryError \
-Xms512m \
-Xmx512m \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=250 \
-XX:G1ReservePercent=20 \
-Djava.security.egd=file:/dev/urandom \
-jar xxxx.jar

JVM options must appear before -jar or the main class. Application arguments belong after the JAR name or main class. When diagnosing startup problems, record the exact command, Java version, environment variables, operating-system limits, and container memory limits.

Safely Restart a Java Application on Linux

· 3 min read
Apache Wangye
Software developer and technical writer

Production Java processes should normally be managed by systemd, a container orchestrator, or another supervisor. Searching ps output and killing a matched PID is fragile: it can select the grep process, match multiple applications, or start a duplicate instance.

Total views -- · Visitors --