当前位置:网站首页>[structure training camp - module 3]
[structure training camp - module 3]
2022-06-22 09:38:00 【InfoQ】
Outsourcing student management system architecture document
Preface
glossary
- Nginx
- MySQL
- Spring Boot
1. Business background
- Inefficient management
- Lack of standardized student information management
- Unable to scientifically analyze students' learning

2. Constraints and restrictions
- The investment fund of the project is 200 Ten thousand yuan
- Project milestone (2022 year 01 month 01 Japan ~2022 year 05 month 31 Japan ):
- First iteration (2022 year 01 month 01 Japan -2022 year 02 month 01 Japan ):Complete login registration 、 Authority management function
- Second iteration (2022 year 02 month 01 Japan -2022 year 03 month 01 Japan ):Complete the student information management function
- The third iteration (2022 year 03 month 01 Japan -2022 year 04 month 01 Japan ):Complete the function of uploading and arranging courses
- Fourth iteration (2022 year 04 month 01 Japan -2022 year 05 month 01 Japan ):Complete the course selection 、 The test 、 Scoring function
- The fifth iteration (2022 year 05 month 01 Japan -2022 year 05 month 31 Japan ):Complete the background operation and maintenance management function
- The project adopts the mainstream technology in the industry
- One for operation and one for standby MySQL database , Ensure that data is not lost
- use Nginx Reverse proxy
- use Spring Boot The frame acts as a scaffold , Provide development efficiency
- This project has different actual effect requirements for data storage
- Student status information should be kept permanently
- Publish course information , At least keep 1 year
- Student examination results and reward and punishment records , Keep it forever
3. Overall framework
3.1 Architecture analysis
- High availability :For student management system , The loss of student status information will bring great trouble to students
- High performance :For the lesson grabbing function module , Course information is undoubtedly hot data , It needs to be guaranteed in 50000TPS
- Scalable :Because the project is in its infancy , At present, it only serves XX School , After communication with the business side , It is found that the course examination module should have certain expandable performance
- cost 、 Security :Currently only serves one school , As long as the deployment 4 Servers ; Involving student status information , Encrypted storage is needed
3.2 System architecture

- The data layer :One for operation and one for standby MySQL. Generally, data is read and written on the main database , And real-time binlog Log in MySQL Back up the database for playback ; When the primary database fails , Switch between active and standby , Ensure that the data service will not be interrupted .
- Service layer :Improve project development efficiency based on business analysis , Split the service into : Student subsystem 、 Course subsystem 、 Permission subsystem ; Each development team is responsible for the development of a subsystem ;
- Gateway layer :use Nginx As a traffic gateway and service gateway . On the one hand, the request circuit breaker mechanism is used , Carry the call pressure in case of high concurrency , Prevent the whole system from collapsing , Guarantee the core function ( Student management module ) The usability of ; Another aspect , Depending on the request , Route to different service subsystems .
4. Detailed design
4.1 Core functions
4.1.1 Account entry and activation

4.1.2 Course input and course selection sequence diagram

4.2 Key design
4.2.1 High availability of data
4.2.2 High performance of lesson grabbing function
4.3 design code
- use Spring Boot+MyBatis Framework for development
- MySQL Database adoption Innodb engine
- Error code specification : Subsystem code + Specific business error code ; Student subsystem :M01, Course subsystem :M02, Permission subsystem :M03
- use Fegin As web Server client
- Table development design and specific development specifications , May refer to 《 Alibaba Java Development Manual 》
5. Quality design
5.1 cost
- Labor cost: front end (2 people )、 Back end (4 people ),UI(1 people ),BA(1 people ), Daily Operation (1 people )
- Server cost :4 Servers (2 Servers +2 Station database )
5.2 ...Testability
- The coverage rate of core business unit test reaches 85%
- Full link voltage test of core services
5.3 Maintainability
- MySQL When the host fails , The standby machine can be switched automatically
- When a business function fails , Business fault isolation is available , Ensure that other businesses can be carried out normally
5.4 Observability
- Provide log view interface
- Provide jvm、CPU And other performance indicators monitoring interface
6. Evolution planning
边栏推荐
- mknod
- 5 interview questions, grasp the underlying principle of string!
- Detr: end to end object detection with transformers (from Li Mu and Zhu)
- Some penetration test terms I collected
- 6-42 sparse matrix transpose
- Traifik ingress practice
- Opencv daily function histogram correlation (3)
- 在ensp上做防火墙的双机热备
- ==经典面试题
- The difference between scnprintf and snprintf
猜你喜欢

Detr: end to end object detection with transformers (from Li Mu and Zhu)

A readme of an old open source person - how to do open source well
![[node] theory + practice enables you to win sessions and cookies](/img/26/ef15896094d1887619c6ba9f6f287a.png)
[node] theory + practice enables you to win sessions and cookies

Common SQL statements in MySQL

秋招秘籍C

Ctfshow web realizes killing through one question

在ensp上做多出口服務器映射

Lexical Sign Sequence

Overview of microservice architecture

Zabbix5系列-使用温湿度传感器监控机房温湿度 (二十)
随机推荐
Win+sublime Text3 + go 1.9.2 environment setup diagram
[node] scaffolding server to complete token verification
SQL编程task05作业-SQL高级处理
[hdu] P1466 计算直线的交点数
论文笔记:DETR: End-to-End Object Detection with Transformers (from 李沐老师and朱老师)
[cmake命令笔记]find_path
Shengdun technology joined dragon lizard community to build a new open source ecosystem
Debian10配置RSyslog+LoganAlyzer日志服务器
坚决打好打赢防汛救灾这场硬仗 全力保障人民群众生命财产安全
Error in PHP installation of Pagoda: libcares so. 2: cannot open shared object file: No such file or directory
Attack and defense world web practice area beginner level
6-40 constructing ordered sparse polynomial chained storage
The difference between scnprintf and snprintf
秋招秘籍C
Unicode characters / static non static access
Template engine, making interaction elegant
Jinglianwen Technology: product summary of machine learning AI dataset (III)
[hdu] P7058 Ink on paper 求最小生成树的最大边
6-7 average the surrounding elements of a two-dimensional array
Lifecycle of Servlet