Company Background:
The company raised 1 billion yuan and divested the B2B fresh food business segment to operate as an independent company. In addition to some core product managers, operations, and procurement roles, the R&D team has been reorganized, and a complete set of supply chain platforms has been rebuilt to support large-scale business expansion. There are about 70 warehouses across the country (including front-end warehouses, transit warehouses and physical warehouses), which have actually reached 10 billion business scale (revenue) and are expected to reach 100 billion business scale.
R&D scale
The size of the R&D team is planned to be about 100 people in the early stage (within about 6 months), and it will grow to nearly 180 people in the later stage;
The R&D organization adopts matrix structure management, including finance group, factory group, warehousing group, purchasing group, big B sales business group, small B sales business group, data analysis group, and architecture group.
Product Director: Responsible for and coordinating the management of all product personnel, responsible for the entire product, process, use and experience;
Project Manager: Coordinate all project schedules and R&D personnel resource allocation, and be responsible for the R&D progress and delivery of the entire product.
Chief Architect: Coordinate all technical architectures, support all project technologies and business use, build a technical middle office and support technology evolution and O&M, and be responsible for the stability of the entire product.
Data Manager: Coordinate all data and business reports, build a data center, support intelligent data operations, and provide data support for business and senior management decisions.
Application architecture
Business architecture
Technical architecture
Technology architecture evolves
R&D infrastructure
Operations automation
Database O&M
Distributed infrastructure
1. Distributed task scheduling platform
xxl-job is used to mount tasks such as background/asynchronous tasks, ensuring that some time-consuming, resource-consuming, and timing tasks are separated from APIs, and ensuring the stability of front-end APIs.
2. Distributed service centers
eureka-server for unified management of service registration, load balancing, failover, health detection, and other services.
3. Distributed message queues
rocketmq is used for asynchronous decoupling of services, forwarding of upstream and downstream messages, and asynchronous communication of heterogeneous services.
4. Distributed log center
elk, for unified management of application logs, query, statistics, etc.
5. Distributed file services
Qiniu File Service, for file uploading, downloading, file lifecycle management, dynamic scaling of images, etc.
6. CDN
Tencent CDN, CDN network acceleration for images, scripts, CSS, and other files, speeding up the download speed of front-end resources.
7. Distributed configuration center
Apollo, for configuration classification, abstraction, grayscale release, etc. management of all projects.
8. Middleware for database and table subdivision
sharding-jdbc is used to shield database sharding and table sharding from business developers, and splitting details of master-slave read/write separation.
9. Search for services
elasticsearch, for full-text search, similarity documents (data) business queries.
10. Distributed caching
redis, which is used for the distributed cache of the business, thereby speeding up the query speed of the business.
Distributed monitoring system
1. Call chain monitoring
pinpoint, which is used to monitor and analyze the call relationship of all services, including (CPU, memory, time) performance, etc. In the future, it will be migrated to skywalking.
2. Log monitoring
elk, for unified management of application logs, query, statistics, etc.
3. Server monitoring
Zabbix, for performance monitoring at the system level of all Linux servers.
4. DB monitoring
PMM is used for performance monitoring records, slow queries, and other analysis of all online MySQL databases.
5. Application Monitoring (Performance Analysis)
CAT, which is used for the analysis of all online forward and reverse call links, time-consuming performance analysis of databases and URLs, performance analysis reports of services and servers, BSF self-developed monitoring reports, etc.
Distributed framework BSF
Goal: To better support business development, let developers free themselves from middleware and focus on the business to improve development efficiency. At the same time, the basic framework centralizes and optimizes the services and use of middleware, providing developers with high-performance and more convenient basic service interfaces and tools, and the practical process can increase efficiency by 10 times.
Open Source Address:The hyperlink login is visible.
The underlying framework BSF and the business framework business are separated, so that the general underlying framework can be stripped of the actual public business library. Based on BSF and Business, define a standard project scaffolding csx-b2b-demo for quickly building project services.
Business basic service construction
Compare existing service market architectures
Technical architecture
Business architecture
future
- The business service split structure is reconstructed
- Big data and read/write separation
- AI for business
- BSF support for JDK17 and 21
- Form engine and process engine
by Che Jiang Yi
2023-5-6
Java R&D team internal architecture sharing notes
Original:The hyperlink login is visible.
|