Nội dung chi tiết 1.1. Giới Thiệu Hệ thống được xây dựng theo mô hình  Enterprise Service Bus (ESB)  kết hợp  API Management (APIM) , sử dụng nền tảng LifeESB làm trung gian điều phối giữa Client và các Backend Service. Tích hợp thêm Apache Kafka  để xử lý tải lớn theo mô hình bất đồng bộ. Tên hệ thống: LifeESB APIM:  API Manager Message Queue:  Apache Kafka (Broker:  hdp-master:9092 ) 1.2. Sơ Đồ Kiến Trúc Tổng Thể   1.3. Các Thành Phần Chính 1.3.1. APIM — API Manager Cổng vào duy nhất (Single Entry Point) cho toàn bộ hệ thống. Chức năng Mô tả Xác thực Kiểm tra JWT / OAuth2 / API Key trước khi vào LifeESB Rate Limiting Giới hạn số request/giây theo từng API hoặc User Versioning Quản lý nhiều version API ( /v1 ,  /v2 ) song song Analytics Theo dõi lưu lượng, latency, error rate Portal Developer Portal để publish và subscribe API 1.3.2. LifeESB Lớp tích hợp trung gian, chịu trách nhiệm điều phối luồng dữ liệu. Thành phần File Chức năng Sync API PlanningDirectApi.xml Gọi thẳng Backend, Client nhận kết quả ngay Async API KafkaProducerApi.xml Đẩy vào Kafka, trả phản hồi ngay cho Client Inbound Endpoint Load_balance_example.xml Lắng nghe Kafka, kích hoạt Sequence xử lý Sequence Load_balance_example-inboundSequence.xml Logic xử lý message: gọi Backend + phân loại lỗi Error Sequence Load_balance_example-inboundErrorSequence.xml Xử lý lỗi Kafka, đẩy vào  error_topic Local Entry KafkaConnection.xml Cấu hình kết nối Kafka tái sử dụng 1.3.3. Apache Kafka Message Broker xử lý tải lớn và đảm bảo không mất dữ liệu. Topic Mục đích test_topic_01 Nhận message từ API Producer (đầu vào) processed_topic Lưu message đã xử lý thành công error_topic Lưu message lỗi để review thủ công 1.3.4. Backend Service REST API xử lý nghiệp vụ thực tế. Thông tin Giá trị Base URL http://192.168.0.133:8080 Endpoint chính POST /api/v1/plannings Xác thực JWT Bearer Token Framework Spring Boot 1.4. Hai Mô Hình Dịch Vụ 1.4.1. Đồng Bộ — Synchronous (Direct API) Client gọi và  chờ kết quả  từ Backend. Client → APIM → LifeESB (PlanningDirectApi) │ ▼ Backend API [chờ response] │ ▼ LifeESB → Client [trả kết quả thực] Đặc điểm: Client biết ngay kết quả thành công hay thất bại Backend bị quá tải → Client bị block, timeout Phù hợp: nghiệp vụ cần xác nhận ngay, lượng request vừa phải Endpoint:   POST /plannings-direct 1.4.2. Bất Đồng Bộ — Asynchronous (Kafka) Client gửi và  nhận phản hồi ngay  (không chờ Backend xử lý xong). Đặc điểm: Client không bị block dù Backend chậm hoặc quá tải Kafka buffer message, đảm bảo không mất dữ liệu Phù hợp: tải lớn, xử lý nền, không cần kết quả ngay Endpoint:   POST /kafka-producer 1.5. So Sánh Hai Mô Hình Tiêu chí Đồng bộ ( /plannings-direct ) Bất đồng bộ ( /kafka-producer ) Client chờ ✅ Chờ kết quả thực ❌ Nhận  success  ngay lập tức Khả năng chịu tải Thấp hơn (Backend block) Cao (Kafka buffer) Độ trễ Phụ thuộc Backend Gần như bằng 0 (phía Client) Đảm bảo dữ liệu Ghi ngay hoặc lỗi ngay Kafka lưu, retry nếu fail Xử lý lỗi faultSequence  → trả ngay error_topic  → review sau Phù hợp Tải vừa, cần confirm Tải lớn, xử lý nền Timeout 15 giây Không (Kafka giữ message) 1.6. Nguyên Tắc Kiến Trúc Single Entry Point : Mọi request đi qua APIM, không gọi thẳng LifeESB từ ngoài. Stateless Mediator : LifeESB không lưu trạng thái — toàn bộ state trong Kafka hoặc Backend DB. Error Isolation : Lỗi phải được bắt trong Sequence, không để lỗi raw thoát ra ngoài. Dead Letter Pattern : Message lỗi luôn được chuyển vào  error_topic , không bao giờ bị drop. Observability : Mọi bước xử lý đều có  log level="custom"  để trace theo luồng. 1.7. Môi Trường Triển Khai Thành phần Host / Port Ghi chú LifeESB 192.168.0.167:8290 HTTP endpoint LifeESB Management 192.168.0.167:9201 Deploy CAR file Kafka Broker hdp-master:9092 PLAINTEXT Backend API 192.168.0.133:8080 Spring Boot 📸  [Ảnh minh họa] — LifeESB Dashboard sau khi deploy   📸  [Ảnh minh họa] — Kafka UI / Kafka Manager hiển thị các topic