0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Xây Dựng Micro-service với gRPC: Phần 2 - Chi Tiết Các Module và Quy Trình Hoạt Động

Đăng vào 1 tháng trước

• 3 phút đọc

Chào Mừng Đến Với Phần 2: Xây Dựng Micro-service với gRPC

Xin chào các bạn đọc! Chúng ta lại gặp nhau trong phần 2 của series về xây dựng micro-service bằng giao thức gRPC. Nếu bạn chưa đọc phần 1, hãy tham khảo tại đây.

Trong phần này, tôi sẽ chia sẻ với bạn những nội dung chính như sau:

  1. Giới thiệu về Project Minh Họa
  2. Chức Năng của Các Module Trong Project
  3. Luồng Chạy Chính
  4. Tổng Kết

Không để bạn chờ lâu, chúng ta hãy cùng bắt đầu nhé!

Giới Thiệu Về Project Minh Họa

Project mà tôi muốn giới thiệu là một API đơn giản với các chức năng chính bao gồm:

  • Đăng ký, Đăng nhập, Xác thực người dùng.
  • Người dùng có thể đặt hàng sản phẩm.
  • Người dùng có thể lấy thông tin của một đơn hàng.

Mặc dù chỉ có những tính năng cơ bản như vậy, nhưng khi triển khai theo kiến trúc micro-service, toàn bộ project sẽ bao gồm 4 module chính:

  1. API-Gateway
  2. Authen Service
  3. Order Service
  4. Item Service

Mô Hình Dữ Liệu

Vì đây là micro-service, mỗi service sẽ có một cơ sở dữ liệu riêng, chỉ chứa các bảng liên quan đến tính năng chính của từng service. Cụ thể:

  • Authen Service: Quản lý các tính năng xác thực người dùng, sẽ có bảng User trong cơ sở dữ liệu của nó.
  • Order Service: Chịu trách nhiệm quản lý các tính năng liên quan đến đơn hàng, sẽ lưu trữ thông tin đơn hàng trong cơ sở dữ liệu của nó.
  • Item Service: Quản lý thông tin sản phẩm, có bảng Item trong cơ sở dữ liệu.

Để hiểu rõ hơn về nhiệm vụ của từng module, mời bạn đọc theo dõi tiếp.

API-Gateway

Module này hoạt động như một cổng vào cho hệ thống API. Đối với những ai chưa quen biết, API-Gateway có các chức năng như:

  1. Kết hợp các Backend Services.
  2. Định nghĩa các endpoints cho phép truy cập từ bên ngoài.
  3. Nhận yêu cầu từ client, chuyển tiếp đến handler tương ứng với từng endpoint.
  4. Trả về kết quả xử lý cho client.

Authen Service Module

Module này thực hiện 3 chức năng chính:

  1. Đăng ký (Signup)
  2. Đăng nhập (Login)
  3. Xác thực người dùng (Validate user)

Bạn có thể tham khảo mã nguồn tại đây: Authen Service.

Order Service

Module này thực hiện 2 chức năng chính:

  1. Tạo một đơn hàng mới.
  2. Lấy thông tin của đơn hàng dựa theo id.

Mã nguồn có thể tham khảo tại đây: Order Service.

Item Service

Module này thực hiện 3 chức năng chính:

  1. Tạo mới sản phẩm (item).
  2. Cập nhật thông tin sản phẩm.
  3. Lấy thông tin của sản phẩm dựa theo id.

Mã nguồn có thể tham khảo tại đây: Item Service.

Luồng Chạy Chính

Hãy cùng phân tích quy trình hoạt động với hai ví dụ:

  1. Đăng ký
  2. Đặt hàng sản phẩm

Đăng Ký

Khi client gửi yêu cầu HTTP đến API-Gateway, API-Gateway sẽ thực hiện gọi RPC tới Auth-Service với các tham số cần thiết. Auth-Service sẽ xử lý và ghi kết quả vào User-DB.

Đặt Hàng Sản Phẩm

Tương tự như chức năng đăng ký, client gửi yêu cầu HTTP để đặt hàng đến API-Gateway. API-Gateway sau đó chuyển đổi yêu cầu này thành lời gọi RPC, gửi đến Order-Service. Order-Service sẽ xử lý và lưu kết quả vào Order-DB.

Khi tạo đơn hàng, sẽ có tương tác giữa Order-ServiceItem-Service, cụ thể là cập nhật trạng thái sản phẩm từ "CÒN HÀNG" thành "ĐÃ BÁN" bằng cách sử dụng mô hình SAGA Pattern. Bạn có thể tham khảo bài viết về SAGA Pattern tại đây: SAGA Pattern.

Sau khi nhận lệnh từ Order-Service, Item-Service sẽ thực hiện cập nhật trạng thái sản phẩm trong Item-DB.

Tổng Kết

Trong phần này, tôi đã trình bày một cái nhìn tổng quát về project demo của chúng ta. Hy vọng bạn đọc sẽ tiếp tục theo dõi các bài viết tiếp theo trong series "Xây dựng Micro-service với gRPC" của tôi. Cảm ơn bạn và hẹn gặp lại!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào