Chế độ Shared Memory
Application SupervisorEnterprise Edition+Giới thiệu
Khi bạn muốn chia nghiệp vụ ở cấp ứng dụng nhưng không muốn đưa vào kiến trúc triển khai và vận hành phức tạp, có thể sử dụng chế độ multi-app shared memory.
Trong chế độ này, một instance NocoBase có thể chạy nhiều ứng dụng cùng lúc. Mỗi ứng dụng là độc lập, có thể kết nối với database độc lập, có thể tạo, khởi động và dừng riêng, nhưng chúng chia sẻ cùng một process và memory space, bạn vẫn chỉ cần duy trì một instance NocoBase.
Hướng dẫn sử dụng
Cấu hình biến môi trường
Trước khi sử dụng tính năng multi-app, hãy đảm bảo đã đặt các biến môi trường sau khi NocoBase khởi động:
Tạo ứng dụng
Trong menu System Settings, click "AppSupervisor" để vào trang quản lý ứng dụng.

Click nút "Thêm mới" để tạo một ứng dụng mới.

Mô tả các mục cấu hình
Khởi động ứng dụng
Click nút Khởi động để khởi động sub-app.
Nếu khi tạo có tích chọn "Khởi động khi truy cập lần đầu", sẽ tự động khởi động khi truy cập lần đầu.

Truy cập ứng dụng
Click nút Truy cập, sub-app sẽ được mở trong tab mới.
Mặc định sử dụng /apps/:appName/admin/ để truy cập sub-app, ví dụ
Đồng thời, cũng có thể cấu hình tên miền độc lập cho sub-app, cần phải parse tên miền đến IP hiện tại, nếu sử dụng nginx, cũng cần thêm tên miền trong cấu hình nginx.
Dừng ứng dụng
Click nút Dừng để dừng sub-app.

Trạng thái ứng dụng
Trong danh sách có thể xem trạng thái hiện tại của từng ứng dụng.

Xóa ứng dụng
Click nút Xóa để loại bỏ ứng dụng.

Câu hỏi thường gặp
1. Quản lý plugin
Các plugin mà các ứng dụng khác có thể sử dụng giống với ứng dụng chính (bao gồm phiên bản), nhưng có thể cấu hình và sử dụng plugin độc lập.
2. Cô lập database
Các ứng dụng khác có thể cấu hình database độc lập. Nếu muốn chia sẻ dữ liệu giữa các ứng dụng, có thể thực hiện qua data source bên ngoài.
3. Sao lưu và migrate dữ liệu
Hiện tại sao lưu dữ liệu trên ứng dụng chính không hỗ trợ chứa dữ liệu của các ứng dụng khác (chỉ chứa thông tin cơ bản của ứng dụng), cần sao lưu và migrate thủ công trong các ứng dụng khác.
4. Triển khai và cập nhật
Trong chế độ shared memory, phiên bản của các ứng dụng khác sẽ tự động nâng cấp theo ứng dụng chính, đảm bảo phiên bản ứng dụng nhất quán tự động.
5. Session ứng dụng
- Nếu ứng dụng sử dụng JWT secret độc lập, session ứng dụng sẽ độc lập với ứng dụng chính và các ứng dụng khác. Nếu truy cập các ứng dụng khác nhau qua sub-path của cùng một tên miền, do TOKEN ứng dụng được cache trong LocalStorage, khi chuyển đổi giữa các ứng dụng khác nhau cần đăng nhập lại. Khuyến nghị cấu hình tên miền độc lập cho các ứng dụng khác nhau để cô lập session tốt hơn.
- Nếu ứng dụng không sử dụng JWT secret độc lập, sẽ chia sẻ session với ứng dụng chính. Sau khi truy cập các ứng dụng khác trong cùng một trình duyệt rồi quay lại ứng dụng chính, không cần đăng nhập lại. Nhưng có nguy cơ bảo mật, nếu ID người dùng của các ứng dụng khác nhau bị trùng, có thể dẫn đến người dùng truy cập trái phép dữ liệu của các ứng dụng khác.

