Xây Dựng Hệ Thống Thương Mại Điện Tử Áp Dụng Kiến Trúc Microservice

Chuyên khảo kỹ thuật phân tích Xây dựng hệ thống tmđt áp dụng kiến trúc microservice, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2024

154
7
0

Phí lưu trữ

45 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. MỤC LỤC

2. DANH MỤC HÌNH

3. DANH MỤC BẢNG

4. DANH MỤC CÁC KÝ HIỆU, VIẾT TẮT

PHẦN MỞ ĐẦU

1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI

2. MỤC TIÊU CỦA ĐỀ TÀI

3. PHƯƠNG PHÁP THỰC HIỆN

PHẦN NỘI DUNG

1. Kiến trúc Microservice

1.1. Giới thiệu về kiến trúc Microservice

1.2. Giao tiếp trong Microservice

1.3. Các công cụ hỗ trợ cho Microservice

1.4. So sánh kiến trúc Microservice và Monolithic

2. Các công nghệ sử dụng trong đề tài

2.1. Ngôn ngữ Java và Framework Spring Boot

2.2. Ngôn ngữ Go và Framework Fiber

2.3. TypeScript và React

2.4. Cơ sở dữ liệu MySQL và MongoDB

2.5. Các công cụ hỗ trợ cho ứng dụng Microservice

2.6. FlashAPI và Tensorflow

2.7. Firebase và Quarkus

3. Chức năng tìm kiếm bằng hình ảnh

3.1. Lý thuyết về Content-Based Image Retrieval - CBIR

3.2. Chi tiết xử lý

3.3. Kết quả thử nghiệm thực tế

1. KHẢO SÁT, PHÂN TÍCH, THIẾT KẾ

1.1. Phân tích hiện trạng

1.2. Mô hình vận hành của Website

1.2.1. Giới thiệu về mô hình thương mại điện tử C2C

1.2.2. Mô hình hoạt động của dự án

1.2.3. Cách tính doanh thu lợi nhuận cho hệ thống/cửa hàng

1.3. Phân tích yêu cầu dự án

1.3.1. Yêu cầu chức năng nghiệp vụ

1.3.2. Yêu cầu chức năng hệ thống

1.3.3. Yêu cầu phi chức năng

2. MÔ HÌNH HÓA YÊU CẦU

2.1. Danh sách tác nhân

2.3. Chi tiết các Usecase

2.3.1. Các Usecase Cho GUEST

2.3.2. Các Usecase Cho USER

2.3.3. Các Usecase Cho DELIVERY

2.3.4. Các Usecase Cho STORE

2.3.5. Các Usecase Cho ADMIN

3. THIẾT KẾ PHẦN MỀM

3.1. Lược đồ tuần tự

3.3. Đăng ký cho Store

3.4. Đăng ký cho Delivery

3.5. Tìm kiếm bằng hình ảnh

3.6. Thêm sản phẩm

3.7. Cập nhật giỏ hàng

3.8. Danh sách thể loại sản phẩm

3.9. Thêm danh mục

3.10. Cập nhật thông tin cá nhân

3.12. Thanh toán thông qua Paypal

3.13. Đánh giá sản phẩm

3.14. Lấy danh sách giỏ hàng

3.15. Lấy danh sách danh mục

3.18. Lấy danh sách đơn hàng

3.19. Thống kê tổng đơn hàng

3.20. Thống kê doanh thu

3.21. Thống kê sản phẩm bán chạy

4. THIẾT KẾ GIAO DIỆN

4.1. Giao diện chung cho trang web

4.1.1. Giao diện đăng ký

4.1.2. Giao diện trang sản phẩm

4.1.3. Giao diện trang chi tiết sản phẩm

4.1.4. Giao diện thanh toán

4.1.5. Khi thanh toán bằng paypal

4.1.6. Xem tất cả trạng thái đơn hàng

4.1.7. Xem chi tiết trạng thái đơn hàng

4.1.9. Trang đăng ký bán hàng

4.1.10. Trang danh sách địa chỉ

4.1.11. Thêm địa chỉ cá nhân

4.2. Giao diện bán hàng

4.2.1. Danh sách các đơn đặt hàng

4.2.2. Chi tiết các đơn đặt hàng

4.2.3. Thêm sản phẩm

4.2.4. Khi có phân loại hàng chi tiết

4.2.5. Danh sách các sản phẩm của cửa hàng

4.2.6. Xem chi tiết và chỉnh sửa sản phẩm

4.2.7. Thống kê bán hàng của shop

4.2.8. Rút tiền từ ví về tài khoản paypal

4.2.9. Phân tích bán hàng

4.2.10. Đánh giá shop

4.3. Đơn vị vận chuyển

4.3.1. Chi tiết đơn hàng

4.4. Giao diện Admin

4.4.2. Quản lý người dùng

4.4.3. Quản lý danh mục

4.4.4. Quản lý cửa hàng

4.4.5. Danh sách hoa hồng

4.4.6. Xem chi tiết và sửa hoa hồng

4.4.7. Danh sách các sản phẩm

4.4.8. Cấm bán sản phẩm

4.4.12. Quản lý giao dịch

4.4.13. Doanh thu theo tháng

4.4.14. Doanh thu theo năm

4.4.16. Quản lý voucher khuyến mãi

4.4.17. Thêm voucher khuyến mãi

5. CÀI ĐẶT VÀ TRIỂN KHAI HỆ THỐNG

5.1. Yêu cầu hệ thống

5.2. Chuẩn bị các công cụ cần thiết

5.3. Chạy ứng dụng thủ công cho từng service

5.3.1. Ứng dụng frontend

5.3.2. Ứng dụng backend

5.4. Triển khai nhanh trên localhost

5.5. Triển khai nhanh nền tảng lên Internet

5.6. Đánh giá hiệu năng hệ thống ứng dụng Backend

PHẦN KẾT LUẬN

1. NHỮNG KẾT QUẢ ĐẠT ĐƯỢC

1.1. Về Kiến Thức

1.2. Về mặt kỹ năng

1.3. Về phần đề tài đã xây dựng

2. ƯU VÀ NHƯỢC ĐIỂM

2.2. Nhược điểm

3. HƯỚNG PHÁT TRIỂN

DANH MỤC TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng Quan Về Xây Dựng Hệ Thống Thương Mại Điện Tử

Hệ thống thương mại điện tử (TMĐT) đang trở thành xu hướng chủ đạo trong nền kinh tế số. Việc xây dựng một hệ thống TMĐT hiệu quả không chỉ giúp doanh nghiệp mở rộng thị trường mà còn nâng cao trải nghiệm người dùng. Kiến trúc microservice là một trong những giải pháp tối ưu cho việc phát triển hệ thống TMĐT, cho phép tách biệt các chức năng thành các dịch vụ nhỏ, dễ quản lý và mở rộng.

1.1. Khái Niệm Về Hệ Thống Thương Mại Điện Tử

Hệ thống TMĐT là nền tảng cho phép người dùng thực hiện giao dịch mua bán hàng hóa và dịch vụ qua internet. Các thành phần chính bao gồm giao diện người dùng, hệ thống quản lý sản phẩm, và các dịch vụ thanh toán.

1.2. Lợi Ích Của Kiến Trúc Microservice Trong TMĐT

Kiến trúc microservice giúp tăng cường khả năng mở rộng và bảo trì hệ thống. Mỗi dịch vụ có thể được phát triển, triển khai và mở rộng độc lập, giúp giảm thiểu rủi ro và tăng cường hiệu suất.

II. Thách Thức Trong Việc Xây Dựng Hệ Thống TMĐT

Mặc dù có nhiều lợi ích, việc xây dựng hệ thống TMĐT cũng gặp phải nhiều thách thức. Các vấn đề như bảo mật, quản lý dữ liệu và tích hợp các dịch vụ là những yếu tố cần được xem xét kỹ lưỡng.

2.1. Vấn Đề Bảo Mật Trong Hệ Thống TMĐT

Bảo mật là một trong những yếu tố quan trọng nhất trong hệ thống TMĐT. Các biện pháp bảo mật cần được áp dụng để bảo vệ thông tin người dùng và giao dịch.

2.2. Quản Lý Dữ Liệu Trong Hệ Thống Phân Tán

Quản lý dữ liệu trong kiến trúc microservice đòi hỏi các giải pháp hiệu quả để đảm bảo tính nhất quán và khả năng truy cập dữ liệu nhanh chóng.

III. Phương Pháp Xây Dựng Hệ Thống TMĐT Áp Dụng Microservice

Để xây dựng hệ thống TMĐT hiệu quả, cần áp dụng các phương pháp và công nghệ hiện đại. Việc sử dụng API và các công cụ DevOps là rất cần thiết để tối ưu hóa quy trình phát triển.

3.1. Thiết Kế Kiến Trúc Microservice

Thiết kế kiến trúc microservice bao gồm việc xác định các dịch vụ cần thiết và cách chúng tương tác với nhau thông qua API.

3.2. Tích Hợp API Và Quản Lý Dữ Liệu

Tích hợp API giúp các dịch vụ giao tiếp hiệu quả. Quản lý dữ liệu cần được thực hiện thông qua các giải pháp như database phân tán.

IV. Ứng Dụng Thực Tiễn Của Hệ Thống TMĐT Microservice

Hệ thống TMĐT áp dụng kiến trúc microservice đã được triển khai thành công trong nhiều doanh nghiệp. Các ứng dụng này không chỉ cải thiện hiệu suất mà còn nâng cao trải nghiệm người dùng.

4.1. Ví Dụ Về Hệ Thống TMĐT Thành Công

Nhiều công ty lớn như Amazon và eBay đã áp dụng kiến trúc microservice để tối ưu hóa quy trình kinh doanh và nâng cao trải nghiệm khách hàng.

4.2. Kết Quả Nghiên Cứu Về Hiệu Suất

Nghiên cứu cho thấy rằng việc áp dụng kiến trúc microservice giúp giảm thời gian tải trang và tăng cường khả năng xử lý giao dịch.

V. Kết Luận Về Tương Lai Của Hệ Thống TMĐT

Tương lai của hệ thống TMĐT sẽ tiếp tục phát triển mạnh mẽ với sự hỗ trợ của công nghệ microservice. Các doanh nghiệp cần nắm bắt xu hướng này để duy trì tính cạnh tranh.

5.1. Xu Hướng Phát Triển Công Nghệ TMĐT

Công nghệ AIDevOps sẽ đóng vai trò quan trọng trong việc tối ưu hóa quy trình phát triển và nâng cao trải nghiệm người dùng.

5.2. Tương Lai Của Kiến Trúc Microservice

Kiến trúc microservice sẽ tiếp tục được cải tiến và phát triển, giúp các doanh nghiệp dễ dàng thích ứng với thay đổi của thị trường.

10/07/2025
Xây dựng hệ thống tmđt áp dụng kiến trúc microservice

Trích đoạn nội dung tài liệu

PHẦN MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Ngày nay, lĩnh vực CNTT đang phát triển mạnh mẽ, thúc đẩy việc đổi mới trong các hoạt động truyền thống như giáo dục, y tế, và kinh doanh. Một lĩnh vực ứng dụng mạnh mẽ CNTT không ai khác chính là thương mại điện tử. Hầu hết các công ty lớn hiện nay đều tập trung vào việc thúc đẩy kinh doanh trực tuyến.

Ngoài các sàn thương mại điện tử truyền thống như Lazada, Tiki, và Shopee, các ứng dụng mạng xã hội như TikTok và Facebook cũng tạo ra các sàn thương mại điện tử riêng để theo kịp xu thế hiện nay. Việc kinh doanh trực tuyến đã trở nên dễ dàng, ai cũng có thể tham gia vào thị trường này mà không cần đòi hỏi quá nhiều về kỹ thuật. Nhưng tại sao các hệ thống như Facebook và TikTok có thể tích hợp các sàn thương mại điện tử vào hệ thống của mình một cách nhanh chóng và dễ dàng, trong khi các tính năng cơ bản của họ vẫn hoạt động ổn định? Vì lý do này, nhóm em đã tìm hiểu về kiến trúc microservice, một nền tảng được sử dụng để xây dựng hầu hết các hệ thống lớn tại các công ty công nghệ. Chúng em quyết định áp dụng kiến thức này vào việc xây dựng sàn thương mại điện tử trong đề tài “Xây dựng hệ thống TMĐT áp dụng kiến trúc microservice”.

Website của chúng em mang đến tính năng mua bán hàng hóa giữa các người dùng, tích hợp các công nghệ thanh toán hiện nay, và tất cả đều được xây dựng trên kiến trúc microservice. Ngoài ra, chúng em tích hợp thêm trí tuệ nhân tạo để người dùng dễ dàng tìm kiếm sản phẩm bằng hình ảnh. MỤC TIÊU CỦA ĐỀ TÀI - Tìm hiểu kiến trúc Microservice và các công cụ liên quan. - Xây dựng trang thương mại điện tử hoàn chỉnh trên kiến trúc microservice.

- Website có chức năng quan trọng như quản lý người dùng, sản phẩm, giỏ hàng, cửa hàng, đặt hàng, tính phí vận chuyển, … - Tích hợp nhiều công nghệ mới vào hệ thống. - Triển khai ứng dụng và đánh giá hiệu năng thực tế. - Tích hợp vào trí tuệ nhân tạo để dễ dàng tìm kiếm sản phẩm. Trang 24 Khóa Luận Tốt Nghiệp - Triển khai thực tế trên môi trường Internet.

PHƯƠNG PHÁP THỰC HIỆN - Tìm hiểu các kiến thức liên quan đến kiến trúc Microservice - Khảo sát các hệ thống thực tế. - Tìm hiểu các công nghệ đang sử dụng trong các hệ thống lớn. - Đọc các tài liệu nghiên cứu về lĩnh vực tìm kiếm hình ảnh sử dụng Deep Learning - Phát triển các tính năng cốt lõi của một trang web thương mại điện tử. - Dùng Postman để kiểm tra lại hiệu năng của hệ thống Trang 25 Chương 1 Cơ Sở Lý Thuyết PHẦN NỘI DUNG CHƯƠNG 1.1 Kiến trúc Microservice 1.1 Giới thiệu về kiến trúc Microservice Microservice hiểu như việc tách các module thành những service nhỏ.

Mỗi service sẽ được hoạt động trên các môi trường khác nhau, giao tiếp với nhau thông qua HTTP/REST, Message Queues. Trước đây khi chưa có Microservice thì một kiến trúc thường được sử dụng đó là Monolith khi toàn bộ các chức năng của hệ thống được viết trên một ứng dụng. Những ứng dụng này thường rất nặng nề cồng kềnh có thể có từ vài trăm nghìn dòng code là chuyện bình thường. Cho nên rất khó khăn trong việc nâng cấp và bảo trì các tính năng trong ứng dụng.1 Mô hình mẫu của kiến trúc Monolithic Ngày nay khi xu thế các công nghệ mới phát triển và cập nhật liên tục cũng như các phần mềm được phát triển trong mô hình Agile khi phần thiết kế có thể được đổi mới liên tục phù hợp với yêu cầu thì kiến trúc nguyên khối có lẽ đã không còn hợp với thời đại nữa.

Trang 26 Chương 1 Cơ Sở Lý Thuyết Hình 1.2 Mô hình mẫu kiến trúc Microservice Kiến trúc microservice được ứng dụng trong các dụng Backend để giảm thiểu tính phức tạp của hệ thống khi chia thành các module nhỏ hơn. Trong kiến trúc microservice thì các nhóm tính năng liên quan với nhau sẽ được gom lại tạo thành một module để viết thành một ứng dụng ví dụ User-services có thể có các chức năng như đăng nhập đăng ký tài khoản, quản lý và phân quyền,… tương tự cho các service khác. Các service này được xây dựng trên nhiều công nghệ khác nhau và giao tiếp với nhau thông qua Message hoặc RestAPI tùy vào từng loại chức năng. Các service này sẽ được triển khai trên các hệ thống khác nhau và có thể ở nhiều vị trí địa lý mà không ảnh hưởng nhiều đến hiệu năng của hệ thống.

Nếu triển khai trên cùng một hệ thống thì thường sẽ dùng các môi trường ảo hóa như Docker để triển khai các service nằm trên các vùng ảo hóa khác nhau để tránh sự cố khi một vùng ảo hóa bị sự cố thì các chức năng vẫn có thể hoạt động một cách bình thường.2 Giao tiếp trong Microservice Tiếp theo ta cần biết vấn đề communication (giao tiếp) trong các ứng dụng microservice như thế nào. Phụ thuộc vào tính chất của service, người ta thường dùng 3 communication styles chính: - Remote Procedure Invocation (RPI): Sử dụng RPI để liên lạc giữa các service, client sử dụng một request/reply-based protocol để tạo request đến service. Trong kiểu này người ta thường dùng các chuẩn như REST, gRPC, Apache Thrift… - Messaging: Sử dụng asynchronous messaging để giao tiếp giữa các serivces. Các services trao đổi message qua các kênh message.

Trang 27 Chương 1 Cơ Sở Lý Thuyết - Domain-specific protocol: Trong một vài trường hợp người ta cần dùng các chuẩn như SMTP, IMAP, RTMP, HLS, và HDS để giao tiếp giữa các ứng dụng. Khi hệ thống cần sử dụng các chức năng của các service một các tuần tự thực hiện đồng bộ từ trên xuống thì sẽ dùng RPI tiêu biểu là chuẩn Restful API để thực hiện giao tiếp. Khi các chức năng được thực hiện song song một các bất đồng bộ tiêu biểu là sử dụng mô hình EDA thì người ta sẽ sử dụng Message để giao tiếp giữa các services. Về message sẽ được giới thiệu rõ hơn ở phần công cụ hỗ trợ Microservices 1.3 Các công cụ hỗ trợ cho Microservice 1.1 Message Queue Message queue được hiểu như là một hộp thư, cho phép các thành phần/service trong một hệ thống (hoặc nhiều hệ thống), gửi thông tin cho nhau.

Các message có thể là dạng string, json,… tùy vào định nghĩ của người lập trình. Các message được lấy ra theo cơ chế FIFO (First In First Out). Một hệ thống sử dụng Message Queue thường có những thành phần sau đây: - Message: Thông tin được gửi đi (có thể là text, binary hoặc JSON) - Message Queue: Nơi chứa những message này, cho phép producer và consumer có thể trao đổi với nhau - Producer: Chương trình/service tạo ra thông tin, đưa thông tin vào message queue - Consumer: Chương trình/service nhận message từ message queue và xử lý, một chương trình/service có thể vừa là producer, vừa là consumer. Trong các hệ thống dùng kiến trúc microservice, ta sử dụng message queue để giúp các service liên hệ với nhau một cách bất đồng bộ.

Service A làm xong việc có thể gửi message queue để service B biết mà xử lý, không cần phải chờ service B làm xong. Trang 28 Chương 1 Cơ Sở Lý Thuyết Một số message queue hay được dùng hiện này bao gồm: RabbitMQ, Kafka (Kafka không chỉ dừng lại ở việc lưu trữ và phân phối phát triển nó rất mạnh mẽ do hỗ trợ các tính năng như stream pipeline,…) 1.2 Docker Tiền thân của docker chính là ảo hóa (virtualization) cho phép chia nhỏ một phần cứng thành nhiều phần cứng ảo (virtual machine) khác chạy trên nó. Tại các phần cứng ảo này sẽ được chạy độc lập tách biệt với nhau được quản lý bởi các chương trình ảo hóa. Tuy nhiên VM (virtual machine) thường theo các thành phần như OS (hệ điều hành), các ứng dụng đi kèm với OS cho nên dung lượng của từng VM là rất lớn có thể lên đến hàng chục Gigabyte làm cho hệ thống rất nặng nề.

Công nghệ container ra đời cho phép chia sẻ cùng một Host OS (Hệ điều hành gốc) thành các container chạy trên nó chỉ bao gồm các ứng dụng và dependency cần thiết cho ứng dụng làm giảm thiểu kích thước của ứng dụng khi được triển khai.3 Sự khác nhau giữa container và virtual machines Docker là một nền tảng để cung cấp cách để building, deploying và running ứng dụng dễ dàng hơn bằng cách sử dụng các containers. Trang 29 Chương 1 Cơ Sở Lý Thuyết Hình 1.4 Các thành phần của Docker Docker Engine : là thành phần chính của Docker, như một công cụ để đóng gói ứng dụng Docker Hub : là một nơi để lưu trữ các images. Trên DockerHub có hàng ngàn public images được tạo bởi cộng đồng cho phép bạn dễ dàng tìm thấy những image mà bạn cần. Images: là một khuôn mẫu để tạo một container.

Thường thì image sẽ dựa trên 1 image có sẵn với những tùy chỉnh thêm. Ví dụ bạn build 1 image dựa trên image Centos mẫu có sẵn để chạy Nginx và những tùy chỉnh, cấu hình để ứng dụng web của bạn có thể chạy được. Bạn có thể tự build một image riêng cho mình hoặc sử dụng những image được chia sẻ từ cộng đồng Docker Hub. Một image sẽ được build dựa trên những chỉ dẫn của Dockerfile.

Container: là một instance của một image. Bạn có thể create, start, stop, move or delete container dựa trên Docker API hoặc Docker CLI. Docker Client: là một công cụ giúp người dùng giao tiếp với Docker host. Trang 30 Chương 1 Cơ Sở Lý Thuyết Docker Daemon: lắng nghe các yêu cầu từ Docker Client để quản lý các đối tượng như Container, Image, Network và Volumes thông qua REST API.

Các Docker Daemon cũng giao tiếp với nhau để quản lý các Docker Service. Dockerfile: là một tập tin bao gồm các chỉ dẫn để build một image. Volumes: là phần dữ liệu được tạo ra khi container được khởi tạo.3 API Gateway Một hệ thống microservices sẽ có vài chục cho tới hàng trăm services khác nhau, nếu như client giao tiếp trực tiếp với các services này thì có thể số lượng cái endpoint URL sinh ra sẽ rất khủng khiếp cũng như việc phân bổ các luồng request tới từng service rất lộn xộn và khó quản lý trong việc bảo mật hệ thống cũng như các sự cố có thể diễn ra. Để giải quyết vấn đề trên thì API Gateway ra đời với nhiệm vụ chính là điều phối các luồng request đến từng service cụ thể trong hệ thống.

API Gateway thường dùng để phân luồng request, bảo mật API, giám sát (monitoring), phân tích (analytics) số lượng requests cũng như tình trạng hệ thống phía sau.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Xây Dựng Hệ Thống Thương Mại Điện Tử Áp Dụng Kiến Trúc Microservice" cung cấp cái nhìn sâu sắc về cách thiết kế và triển khai một hệ thống thương mại điện tử hiệu quả bằng cách sử dụng kiến trúc microservice. Tác giả nhấn mạnh những lợi ích của việc áp dụng kiến trúc này, bao gồm khả năng mở rộng, tính linh hoạt và khả năng bảo trì cao hơn cho hệ thống. Đặc biệt, tài liệu này giúp người đọc hiểu rõ hơn về cách mà microservice có thể cải thiện hiệu suất và trải nghiệm người dùng trong môi trường thương mại điện tử.

Nếu bạn muốn tìm hiểu thêm về các khía cạnh khác của hệ thống thương mại điện tử, bạn có thể tham khảo tài liệu Đồ án tốt nghiệp công nghệ thông tin xây dựng hệ thống bán hàng điện tử sử dụng mern stack và flutter, nơi bạn sẽ khám phá cách kết hợp công nghệ hiện đại vào việc xây dựng hệ thống bán hàng. Ngoài ra, tài liệu Specialized project building an e commerce system applying machine learning to recommend items sẽ giúp bạn hiểu rõ hơn về việc ứng dụng machine learning trong việc tối ưu hóa trải nghiệm mua sắm. Cuối cùng, tài liệu Building an e commerce system for fashion stores sẽ cung cấp những kiến thức cụ thể về việc xây dựng hệ thống thương mại điện tử cho ngành thời trang. Những tài liệu này sẽ mở rộng kiến thức của bạn và giúp bạn nắm bắt tốt hơn các xu hướng trong lĩnh vực thương mại điện tử.