Dashboard Mecsu · v3

Sơ đồ hệ thống

Ứng dụng phân tích chỉ đọc, chạy local: ETL dựng snapshot SQLite có phiên bản, một tiến trình Node giữ dữ liệu trong RAM và phục vụ một trang web.

~950 nghìnmã ERP
1 tiến trìnhNode, 127.0.0.1
0 gói npmPython stdlib
7,3 skhởi động tới sẵn sàng
713 MBRAM ổn định
2,5 GBmỗi phiên bản dữ liệu
Tech stack

Năm tầng, từ trình duyệt tới ERP

Chấm vàng đi xuống là yêu cầu, đi lên là dữ liệu. Bấm một tầng để xem vai trò.

Vuốt ngang để xem hết →
Kiến trúc

Đường nạp và đường phục vụ

Hàng trên chạy khi có dữ liệu mới; hàng dưới chạy mỗi lần mở trang hay lọc. Khung nét đứt là một tiến trình Node.

Vuốt ngang để xem hết →
1 tiến trình Node SELECT đọc ghi worker nạp gọi hàm JSON lọc SQLite read-only ERPivyerp_mecsunguồn, chỉ đọc CSVsql-pack/ → data/snapshot ERP ETL · Pythonetl/load.py adapter mirror build SQLite có phiên bảnmirror-*.db · dq-*.dbcurrent.json: hiện tại + trướcđổi con trỏ nguyên tử · rollback Máy chủ HTTPserver.js · api/định tuyến · JSON · xuất Excel Engine RAMtq_engine · val_enginecột + bitmask mỗi mã Trình duyệtv3.html · Chart.js Tổng quan Phân tích Tra cứu & xuất
Luồng xử lý

Một lần đổi bộ lọc

Engine chạy đồng bộ trong cùng tiến trình: nhanh vì dữ liệu đã ở RAM, nhưng request nặng làm request khác xếp hàng.

Vuốt ngang để xem hết →
cùng 1 tiến trình Node Người dùng Trình duyệt Máy chủ Engine RAM 1 · bấm "Mecsu" 2 · GET /tong_quan?kenh=web 3 · lọc + đếm (đồng bộ) 4 · JSON 5 · số + biểu đồ chạy 700 ms
Bên trong engine

Mỗi mã là một dãy bit, lọc là quét mảng

Xanh = trường có dữ liệu, đỏ = thiếu. Đạt chuẩn khi đủ cả 18 trường chuẩn. Ví dụ 10 mã minh hoạ.

Vuốt ngang để xem hết →
Đổi phiên bản dữ liệu

Nạp bản mới khi vẫn đang phục vụ

Blue/green trong một tiến trình. Lỗi ở đâu thì con trỏ không đổi. Chưa phải HA: tiến trình dừng thì dashboard dừng.

Vuốt ngang để xem hết →
Phục vụ dq-A dq-B ETL dựng file tạm kiểm hợp lệ đổi con trỏ Máy chủ dựng thế hệ mới chuyển · thế hệ cũ đóng khi hết request Giữ lại dq-A = bản trước → ▲/▼ trên tab 1 · --rollback
Đề xuất nâng cấp

Thêm vào đâu trên kiến trúc

Nét xanh lá đứt là phần đề xuất, chưa làm. Xếp theo thứ tự nên làm.

Vuốt ngang để xem hết →
ERP CSV ETL SQLite Node Trình duyệt Lịch nạp hằng ngày Adapter DB/API CDN Internet Thư viện cục bộ Worker pool truy vấn nặng tab 1–2 Proxy · TLS đăng nhập