Technical Architecture and Stack Selection for a Medium‑Scale Internet Backend
This article outlines a practical technology stack and architectural choices—including load balancing, CDN, distributed RPC frameworks, message queues, caching, databases, and search—for building a scalable backend that can support tens of thousands of daily active users in a mid‑size internet company.
The author, a technical architect, shares a concise guide on mainstream technology selection for quickly building projects in small to medium companies, recommending the reuse of open‑source projects to reduce development time and improve efficiency.
Key technical indicators are calculated, such as QPS (≈350 requests/s for 50 k daily active users), data volume, cache size (≈5 GB), and daily log size (≈3 GB), providing a reference for capacity planning.
The proposed architecture, hosted on Alibaba Cloud, includes a load‑balancing layer (SLB or Nginx, with a recommended SLB + Nginx combo), CDN for static assets (Qiniu or Alibaba), and a distributed RPC framework (ZK + Dubbo/DubboX/Motan/EDAS, with DubboX preferred).
For messaging, options such as ActiveMQ, RocketMQ, RabbitMQ, and Kafka are discussed, with RocketMQ recommended for operational simplicity.
Caching is handled by Redis; the author notes the high operational cost of self‑built clusters and suggests using Alibaba’s managed service.
The database strategy focuses on read/write separation and master‑slave replication, evaluating Alibaba DRDS versus a self‑built read‑write split architecture.
Search is implemented with Apache Solr, and ELK is suggested for log search and monitoring.
Code management integrates Jenkins and Sonar for continuous integration and quality inspection.
Typical business scenarios are described, emphasizing a SOA approach that can later evolve into micro‑services, with MQ‑driven cache updates and optional MongoDB for auxiliary data.
The article concludes by inviting readers to share the content, join the architect community, and continue learning.
Java Architect Essentials
Committed to sharing quality articles and tutorials to help Java programmers progress from junior to mid-level to senior architect. We curate high-quality learning resources, interview questions, videos, and projects from across the internet to help you systematically improve your Java architecture skills. Follow and reply '1024' to get Java programming resources. Learn together, grow together.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.