Study how a distributed Java e-commerce system is structured with separate services for orders, products, and users.
Use as a reference implementation when building a new online store with Spring and Dubbo.
Learn how to integrate Elasticsearch for product search in a Java web application.
Set up a complete admin panel and customer storefront as a graduation or portfolio project.
Requires ZooKeeper, Redis, ActiveMQ, and Elasticsearch all running locally before starting six separate backend services.
XMall is a full-featured online shopping platform built in Java, intended as a reference implementation for a distributed e-commerce system. It was created as a graduation project and later open-sourced. The project comes with two interfaces: a customer-facing storefront where shoppers can register, browse products, and place orders, and a separate admin panel for managing products, categories, orders, users, permissions, and system configuration. A live demo of both is available at the project's website. The backend is split across multiple services following a service-oriented architecture (SOA) pattern, where different parts of the system run as independent services and communicate with each other. Dubbo handles communication between those services, with ZooKeeper coordinating service discovery. Product search is powered by Elasticsearch. Redis provides caching to reduce database load. ActiveMQ is a message queue used to handle tasks asynchronously between services. MySQL stores the main data, and Shiro handles authentication and access control. All of this is written on top of the Spring/SpringMVC/MyBatis stack that is common in Java enterprise development. The customer-facing storefront is a separate Vue.js project (xmall-front) that talks to the backend via API. The admin panel uses traditional server-rendered pages with jQuery-based plugins for tables, file uploads, and charts. The README is written primarily in Chinese, as this project targets Chinese developers learning distributed backend patterns. To run it locally, you need several middleware services installed and running (ZooKeeper, Redis, ActiveMQ, Elasticsearch), then configure connection details and start six separate backend services plus the frontend. The admin panel runs at port 8888 by default with default credentials. The project is GPL v3 licensed.
← exrick on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.