Ứng dụng NestJS, Microservices và Intelligent Agents trong kiến trúc backend hiện đại

NestJS và thiết kế dịch vụ thông minh NestJS là một framework mạnh mẽ cho Node.js, kết hợp các lợi ích của lập trình hướng đối tượng, hàm và phản ứng để tạo ra một hệ thống dịch vụ dễ bảo trì và mở rộng. Với sự phát triển của kiến trúc microservices và cloud-native, NestJS trở thành nền tảng hỗ trợ các dịch vụ dựa trên agent (agent-based servi ...

Đăng vào ngày 12 tháng 6 lúc 10:01

Cài đặt cụm Consul HA với Docker

Trước tiên cần tắt tường lửa trên các máy chủ: # Kiểm tra trạng thái firewall systemctl status firewalld # Dừng firewall systemctl stop firewalld Ba máy chủ tham gia cụm: 192.168.0.191 - Máy chủ chính 192.168.0.110 - Máy phụ 192.168.0.122 - Máy phụ Kéo image Consul về tất cả các máy: Cấu hình cho máy chủ 192.168.0.191: docker run -d --name cons ...

Đăng vào ngày 12 tháng 6 lúc 03:03

Hướng dẫn Sử dụng Logrus Prefixed Log Formatter

Logrus Prefixed Log Formatter là một bộ định dạng hóa nhật ký dựa trên Logrus, cải tiến từ TextFormatter gốc của Logrus. Nó hỗ trợ việc thêm tiền tố (như nguồn thông điệp) và cho phép tùy chỉnh chủ đề màu sắc. Khi đầu ra không phải là TTY, nó tương thích với định dạng logfmt. Địa chỉ dự án: https://github.com/x-cray/logrus-prefixed-formatter Cà ...

Đăng vào ngày 11 tháng 6 lúc 05:59

Spring Cloud Gateway – Các quy tắc phân tích tuyến đường dựa trên Predicate

Predicate trong ngữ cảnh Java 8 là một hàm biểu diễn điều kiện mang giá trị đúng/sai, nhận một tham số đầu vào và trả về kết quả kiểu boolean. Giao diện này cung cấp nhiều phương thức mặc định để kết hợp các điều kiện phức tạp như AND, OR, NOT. Trong Spring Cloud Gateway, cơ chế Predicate được tận dụng triệt để để thiết lập các quy tắc định tuy ...

Đăng vào ngày 10 tháng 6 lúc 16:43

Khắc phục lỗi khởi động Dubbo 2.7.2: Unsupported generic type false

Hiện tượng vấn đề ====== Khi khởi động dịch vụ dubbo, hệ thống ném ra ngoại lệ Unsupported generic type false nhưng không ảnh hưởng đến việc dịch vụ được xuất bản bình thường. Caused by: java.lang.IllegalArgumentException: Unsupported generic type false Thông tin phiên bản ======= SpringBoot 2.1.3 + Dubbo 2.7.2 Nguyên nhân gốc rễ ======= ...

Đăng vào ngày 5 tháng 6 lúc 20:00

Xử lý các vấn đề bất thường trong hệ thống vi dịch vụ Java bằng cách thiết lập thời gian chờ hoặc bắt lỗi

Bắt đầu với mã nguồn: Phía máy chủ: Trong phương thức của máy chủ, đoạn code 10/0 chắc chắn sẽ gây ra lỗi. @Autowired private PaymentService paymentService; @GetMapping("/payment/hystrix/errorInfo") public CommonResult handleError() { String result = paymentService.generateError(); log.info("***** ...

Đăng vào ngày 5 tháng 6 lúc 03:20

Triển Khai Giao Dịch Phân Tán Với Mô Hình TCC

Mô hình TCC (Try-Confirm-Cancel) là một trong các cách triển khai giao dịch phân tán Giai đoạn TRYING chủ yếu thực hiện kiểm tra hệ thống kinh doanh và giữ lại tài nguyên CONFIRMING giai đoạn chủ yếu thực hiện xác nhận và hoàn tất giao dịch, khi giai đoạn TRYING thực hiện thành công và bắt đầu thực hiện giai đoạn CONFIRMING, mặc định giai đoạn ...

Đăng vào ngày 30 tháng 5 lúc 16:36

Hướng dẫn xây dựng Custom Filter trong Spring Cloud Gateway

Phân tích GlobalFilter và AbstractGatewayFilterFactory Trong hệ sinh thái Spring Cloud Gateway, việc xử lý các logic bổ trợ như bảo mật, ghi nhật ký hoặc thay đổi luồng dữ liệu thường được thực hiện thông qua Filter. Có hai cơ chế chính để tạo filter tùy chỉnh là GlobalFilter và AbstractGatewayFilterFactory. 1. So sánh chi tiết hai loại Filte ...

Đăng vào ngày 29 tháng 5 lúc 20:49

Cân bằng tải động với cổng Ocelot và Consul

1. Vai trò & Mục đích Thiết lập cổng truy cập thống nhất để định tuyến đến nhiều dịch vụ backend, giúp ẩn địa chỉ thực tế của các microservice. Ocelot hỗ trợ tích hợp nhà cung cấp phát hiện dịch vụ (service discovery), cho phép xác định host/port của dịch vụ mục tiêu thông qua Consul. Kết hợp này cho phép mở rộng cluster dịch vụ tự động mà kh ...

Đăng vào ngày 29 tháng 5 lúc 17:33

Các loại tài nguyên Kind trong tệp YAML của Kubernetes

Trong các tệp YAML của Kubernetes, nội dung thường được phân chia theo các loại tài nguyên khác nhau (thường được ngăn cách bằng ký hiệu ---) Các loại tài nguyên phổ biến Endpoints Endpoints cho phép kết nối các dịch vụ bên ngoài vào hệ thống Kubernetes (có thể hiểu là tham chiếu tài nguyên bên ngoài, ví dụ như kết nối một cơ sở dữ liệu MySQ ...

Đăng vào ngày 27 tháng 5 lúc 20:40