Tìm kiếm Nâng cao
Kết quả Tìm kiếm
Tìm thấy 87 kết quả
Trang 1: Tổng quan dự án
1.1 Định nghĩa service-proxy là một thành phần trung gian (Middleware/API Gateway) được phát triển trên nền tảng Spring Boot 3.3 và Java 17. Dự án này đóng vai trò là "cửa ngõ" (Gateway) duy nhất để các ứng dụng Client (như Mobile App, Web Frontend, hoặc các ...
Trang 2: Bài toán nghiệp vụ & Giải pháp kỹ thuật
Dự án ra đời nhằm giải quyết 4 thách thức lớn trong quá trình vận hành hệ thống ký số cũ: 2.1 Thách thức 1: Phân mảnh backend (Fragmented APIs) Bài toán: Client phải ghi nhớ và kết nối đồng thời nhiều địa chỉ Server khác nhau (Signing Engine, CRM, BPMN Ser...
Trang 1: Công nghệ cốt lõi (Core Stack)
Dự án được xây dựng dựa trên các tiêu chuẩn hiện đại của Java Ecosystem: Framework chính: Spring Boot 3.3.0. Ngôn ngữ: Java 17 (Cung cấp các tính năng như Record, Text Blocks, Switch Expression). HTTP Client: Spring WebFlux (WebClient). Được chọn thay thế...
Trang 2: Cấu hình WebClient & Kết nối
Lớp WebClientConfig đóng vai trò quan trọng trong việc thiết lập giao tiếp mạng: 2.1 Xử lý dung lượng file lớn Mặc định, WebClient giới hạn bộ nhớ đệm cho dữ liệu nhận về. Vì hệ thống xử lý ký các file PDF dung lượng lớn, cấu hình đã được mở rộng lên 16 MB: ...
Trang 3: Cơ chế Kháng lỗi (Resiliency)
Hệ thống sử dụng cơ chế Retry-with-Recovery tại lớp ExternalApiClient: 3.1 Cơ chế Retry Sử dụng Annotation @Retryable cho các phương thức gọi API: maxAttempts = 3: Thử lại tối đa 3 lần nếu xảy ra Exception. backoff = @Backoff(delay = 2000): Chờ 2 giây gi...
Trang 4: Phân tích cấu trúc mã nguồn
Cấu trúc Package được tổ chức theo chuẩn Clean Architecture đơn giản: Package Trách nhiệm com.example.serviceproxy.controller Tiếp nhận HTTP Request từ Client, thực hiện Mapping Header. com.example.serviceproxy.service Chứa Interface ...
Trang 1: Chuẩn bị môi trường
Để chạy dự án service-proxy, hệ thống cần cài đặt sẵn các thành phần sau: Java Development Kit (JDK) 17: Khuyến nghị sử dụng OpenJDK 17 hoặc Oracle JDK 17. Kiểm tra bằng lệnh: java -version Apache Maven 3.8+: Dùng để build mã nguồn. Kiểm tra bằng...
Trang 2: Cấu hình hệ thống
Hệ thống hỗ trợ cấu hình linh hoạt thông qua file application.yml hoặc các biến môi trường (Environment Variables). 2.1 Các tham số cấu hình chính Tham số Biến môi trường (Env) Giá trị mặc định Mô tả server.port SERVER_PORT 8080 Port l...
Trang 3: Build & Deployment
Dự án đã tích hợp sẵn các script tự động hóa cho các hệ điều hành: 3.1 Triển khai trên Windows Sử dụng file run-windows.bat. Script sẽ tự động: Kiểm tra sự tồn tại của file JAR trong thư mục target/. Nếu chưa có, script sẽ tự chạy mvn clean package để...
Trang 4: Logging & Giám sát (Monitoring)
4.1 File Log Windows: Log được ghi song song vào Console và file app.log tại thư mục gốc của dự án. Linux: Log mặc định đẩy ra STDOUT (có thể chuyển hướng bằng > app.log 2>&1). 4.2 Mức độ Log (Log Levels) Bạn có thể cấu hình mức độ chi tiết của log tro...
Trang 1: Nhóm API Ký số (Signing Proxy)
Endpoint Method Mô tả /api/sign/scan-keywords POST Quét tọa độ từ khóa (keywords) trong file PDF để xác định vị trí ký. /api/sign/request-otp POST Gửi yêu cầu lấy mã OTP phục vụ ký số. /api/sign/verify-otp POST Xác thực mã OTP ...
Trang 2: Nhóm API Quy trình (BPMN Proxy)
Endpoint Method Mô tả /api/proxy/start POST Khởi tạo một phiên quy trình nghiệp vụ (Process Start). /api/proxy/tasks/{pid} GET Lấy danh sách nhiệm vụ (Tasks) của một Process Instance ID. /api/proxy/tasks/{tid}/complete POST Đán...
Trang 1: Xử lý lỗi & Recovery chuyên sâu
Hệ thống sử dụng ExternalApiClient làm trung tâm điều phối. Nếu bạn muốn thay đổi logic xử lý khi Backend gặp lỗi: Thay đổi số lần thử lại: Sửa maxAttempts trong @Retryable. Sửa logic trả về mặc định: Cập nhật các phương thức @Recover. Ví dụ, bạn có thể gử...
Trang 2: Hướng dẫn thêm Endpoint Proxy mới
Để thêm một đường dẫn Proxy mới vào hệ thống, hãy thực hiện 3 bước: Bước 1 (Controller): Tạo phương thức mới trong SigningProxyController hoặc ExternalProxyController để đón nhận request. Bước 2 (Service): Định nghĩa interface và triển khai forwarding. Bư...
Trang 3: Check-list bàn giao cho Dev tiếp quản
Kiểm tra file application.yml đã đúng URL của môi trường mới chưa. Bật logging.level.com.example=DEBUG để kiểm tra các request đầu tiên. Đảm bảo cổng Port (8080) không bị chiếm dụng bởi ứng dụng khác. Xác nhận Client đã gửi Header Token-Signing (cần t...