I spent a month creating this e-commerce site project. Theoretically, this website can handle hundreds of millions of traffic at the same time. In China, this level of e-commerce platform has many, such as Tmall, JD or PDD. Of course, this kind of project is still far from the leading enterprises. I can't implement more details on my own in such a short time. This project mainly focuses on providing Service-Oriented Architecture and an example of handling high traffic volume.I hoped that some small and medium-sized projects can be solved after knowing this e-commerce project. Unlike today's popular Microserver Architecture, this project is essentially a distributed project which is friendly to some architect beginners. Welcome to have a discussion about it.
This repository contains:
- The specification for how a standard e-commerce architecture should look.
- How different modules interact with each other.
- General ideas about why we use these techniques for implementations.
- Simple introduction of e-commerce architecture.
Ego website is temporarily shutdown for the reason that I do not want to maintain server's fee.
- [Background Introduction](#background introduction)
- Configuration
- Usage
- Badge
- Example Readmes
- Related Efforts
- Maintainers
- Contributing
- License
B2B Architecture : Business-to-business (B2B or, in some countries, BtoB) e.g. Alibaba
B2C Architecture : Business-to-client e.g. JD, Tmall, Amazon, WayFair
C2C Architecture : Client-to-Client e.g. Ebay, XianYu
O2O Architecture : Online-to-Offline e.g. MeiTuan, Elema
Selection | |
---|---|
JSP | Spring AMQP |
JQuery | Spring Data |
EasyUI | Spring Security |
SpringBoot | HttpClient |
SpringMVC | RestTemplate |
MyBatis | MyBatis PageHelper |
Dubbo | FastDFS-Java-Client |
Druid | LogBack |
MyBatis Generator |
Environment | Version |
---|---|
Maven | 3.6.3 |
Linux(Centos) | 8.0.1 |
Itellij | 11.0.6 |
Zookeeper | 3.5.5 |
FastDFS | 5.0.8 |
Nginx | 1.16.1 |
Solr | 8.2.0 |
RabbitMQ | 3.7.17 |
Redis | 5.0.5 |
MyCat | 1.6 |
MySQL | 5.7.27 |
Tomcat | 9.0.38 |
Split according to the function module and divide the functions that need to be completed into the following items.
- ego_parent : Parent module
- ego_pojo : Real entity module
- ego_api : Application Programming Interface
- ego_mapper : Provide implementation to access database
- ego_provider : Implementation of ego_api
- ego_commons : All shared resources. e.g. Configurations, Utils class, Common Pojo
- ego_manage : Backend System.
- ego_portal : Portal
- ego_search : Provide Solr Search Function
- ego_item : Details of Product
- ego_cart : Cart
- ego_passport : Single point login system
- ego_trade : Trade System
- ego_redis : Redis Operations.
- ego_rabbitmq_sender : Sending message to rabbitMQ
- ego_rabbitmq_receive : Monitoring the message queue
Remember: Only an architecture demo, not real world website
There are totally 10 servers
Server_1 : Zookeeper (192.168.119.7)
Server_2 : FastDFS (192.168.119.8)
Server_3 : Redis (192.168.119.9)
Server_4 : RabbitMQ (192.168.119.10)
Server_5 : Solr (192.168.119.11)
Server_7 : MySQL Master (192.168.119.12)
Server_8 : MySQL Salve1 (192.168.119.13)
Server_9 : MySQL Salve2 (192.168.119.14)
Server_10 : MyCat (192.168.119.15)
Zookeeper and Eureka can both be used as service registry center.