Đồ án tốt nghiệp: Xây dựng website điện tử sử dụng Microservice - Võ Minh Huy, Nguyễn Hữu Toàn

Khám phá đồ án tốt nghiệp xây dựng website thương mại điện tử sản phẩm điện tử ứng dụng mô hình microservice. Tìm hiểu kiến trúc, triển khai và lợi ích của

Chuyên ngành

Công nghệ Thông tin

Tác giả

Võ Minh Huy

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2020

150
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Xây dựng website điện tử sử dụng Microservice Hướng dẫn chi tiết

Xây dựng website điện tử với mô hình Microservice là một chủ đề hấp dẫn và đang được nhiều người quan tâm. Trong bài viết này, chúng ta sẽ khám phá quá trình xây dựng website sản phẩm điện tử sử dụng Microservice, từ những bước cơ bản đến các ứng dụng thực tiễn. Hãy cùng tìm hiểu chi tiết hơn về chủ đề này.

1.1. Tổng quan về Microservice

Microservice là một kiến trúc phần mềm, cho phép chia nhỏ một ứng dụng thành nhiều dịch vụ độc lập, mỗi dịch vụ xử lý một chức năng cụ thể. Kiến trúc này mang lại nhiều lợi ích, bao gồm khả năng mở rộng, tính linh hoạt và dễ dàng bảo trì. Trong đồ án tốt nghiệp, nhóm sinh viên đã áp dụng Microservice để xây dựng website sản phẩm điện tử.

1.2. Thách thức khi sử dụng Microservice

Mặc dù có nhiều lợi ích, nhưng việc sử dụng Microservice cũng đặt ra những thách thức nhất định. Một trong những thách thức chính là quản lý sự phức tạp của hệ thống. Với nhiều dịch vụ độc lập, việc quản lý và điều phối chúng trở nên khó khăn hơn. Nhóm sinh viên đã phải đối mặt với những khó khăn này và tìm cách giải quyết trong quá trình xây dựng website.

1.3. Giải pháp và phương pháp xây dựng

Để giải quyết các thách thức, nhóm sinh viên đã áp dụng các giải pháp và phương pháp hiệu quả. Họ sử dụng React Js và Node Js để phát triển website, tận dụng sức mạnh của các công nghệ này trong việc xây dựng các dịch vụ Microservice. Ngoài ra, nhóm cũng nghiên cứu và áp dụng các kỹ thuật quản lý và điều phối dịch vụ, đảm bảo sự tương tác và đồng bộ giữa các dịch vụ.

1.4. Ứng dụng thực tiễn và kết quả nghiên cứu

Kết quả của đồ án tốt nghiệp là một website sản phẩm điện tử hoàn chỉnh, sử dụng mô hình Microservice. Website này cho phép người dùng truy cập và mua sắm sản phẩm một cách dễ dàng. Nhóm sinh viên đã tích hợp các tính năng như tìm kiếm, giỏ hàng, thanh toán, và quản lý đánh giá sản phẩm. Kết quả nghiên cứu cho thấy việc sử dụng Microservice mang lại nhiều lợi ích, bao gồm khả năng mở rộng và dễ dàng bảo trì.

II. Phương pháp xây dựng website với Microservice

Để xây dựng một website sử dụng Microservice, cần có những bước và phương pháp cụ thể. Trong phần này, chúng ta sẽ tìm hiểu chi tiết hơn về quá trình xây dựng và các bước cần thực hiện.

2.1. Tìm hiểu và nghiên cứu công nghệ

Bước đầu tiên là tìm hiểu và nghiên cứu về công nghệ cần sử dụng. Trong trường hợp này, nhóm sinh viên đã nghiên cứu về React Js và Node Js, hai công nghệ phổ biến trong phát triển web. Họ đã dành thời gian để học hỏi và nắm vững các kiến thức cơ bản, cũng như các kỹ thuật tiên tiến để xây dựng website.

2.2. Thiết kế kiến trúc Microservice

Sau khi nghiên cứu công nghệ, bước tiếp theo là thiết kế kiến trúc Microservice. Nhóm sinh viên đã phân tích các chức năng cần thiết cho website và chia nhỏ chúng thành các dịch vụ độc lập. Họ xác định các giao diện và tương tác giữa các dịch vụ, đảm bảo sự tương tác và đồng bộ giữa chúng.

2.3. Phát triển và triển khai dịch vụ

Bước tiếp theo là phát triển và triển khai các dịch vụ Microservice. Nhóm sinh viên đã sử dụng React Js và Node Js để xây dựng các dịch vụ, tận dụng các tính năng và thư viện của hai công nghệ này. Họ đảm bảo rằng mỗi dịch vụ xử lý một chức năng cụ thể và tương tác với các dịch vụ khác một cách hiệu quả.

2.4. Quản lý và điều phối dịch vụ

Để đảm bảo sự hoạt động trơn tru của các dịch vụ Microservice, nhóm sinh viên đã áp dụng các kỹ thuật quản lý và điều phối. Họ sử dụng các công cụ và kỹ thuật để giám sát và điều phối các dịch vụ, đảm bảo sự đồng bộ và xử lý các lỗi một cách hiệu quả. Việc quản lý và điều phối dịch vụ là một bước quan trọng trong quá trình xây dựng website.

III. Kết quả và ứng dụng thực tiễn

Kết quả của đồ án tốt nghiệp là một website sản phẩm điện tử hoàn chỉnh, sử dụng mô hình Microservice. Website này đã được triển khai và ứng dụng thực tiễn, mang lại nhiều lợi ích cho người dùng và doanh nghiệp.

3.1. Tính năng và trải nghiệm người dùng

Website sản phẩm điện tử sử dụng Microservice mang lại một trải nghiệm người dùng tuyệt vời. Người dùng có thể dễ dàng tìm kiếm và mua sắm sản phẩm, với giao diện thân thiện và trực quan. Các tính năng như giỏ hàng, thanh toán, và đánh giá sản phẩm được tích hợp một cách hiệu quả, giúp người dùng có thể thực hiện các hoạt động mua sắm một cách thuận tiện.

3.2. Khả năng mở rộng và bảo trì

Việc sử dụng Microservice cho phép website có khả năng mở rộng cao. Với các dịch vụ độc lập, website có thể dễ dàng thêm vào các chức năng mới hoặc mở rộng quy mô. Ngoài ra, việc bảo trì và cập nhật website cũng trở nên đơn giản hơn, vì mỗi dịch vụ có thể được quản lý và cập nhật riêng biệt.

3.3. Ứng dụng thực tiễn trong doanh nghiệp

Website sản phẩm điện tử sử dụng Microservice có thể được áp dụng trong nhiều doanh nghiệp, đặc biệt là các doanh nghiệp bán lẻ trực tuyến. Với khả năng mở rộng và tính linh hoạt, website này cho phép doanh nghiệp quản lý và bán sản phẩm một cách hiệu quả. Ngoài ra, việc sử dụng Microservice cũng giúp doanh nghiệp dễ dàng tích hợp các tính năng mới và cải thiện trải nghiệm người dùng.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

14/03/2026
Đồ án tốt nghiệp xây dựng website sản phẩm điện tử sử dụng mô hình microservice

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

Chương 1: Tổng quan 21 Báo cáo đồ án tốt nghiệp CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Tổng quan về Microservice 2. Khái niệm Microservice Structure Nền tảng cả kiến trúc microservices là xây dựng một ứng dụng mà ứng dụng này là tổng hợp của nhiều services nhỏ và độc lập có thể chạy riêng biệt, phát triển và triển khai độc lập. Hình 1: Mô hình kiến trúc Microservice Kiến trúc Microservice là một tập hợp các service kết nối nhỏ hơn.

Chương 2: Cơ sở lý thuyết 22 Báo cáo đồ án tốt nghiệp 2. Cách thức Microservice vận hành – Mỗi dịch vụ nhỏ thực hiện một tập các chức năng chuyên biệt như quản lý đơn hàng, quản lý khách hàng. – Mỗi dịch vụ là một ứng dụng nhỏ có kiến trúc đa diện lõi là business logic kết nối ra các adapter khác nhau. – Một số dịch vụ nhỏ lộ ra giao tiếp lập trình API cho dịch vụ nhỏ khác hay ứng dụng client gọi tới.

– Khi vận hành, mỗi dịch vụ nhỏ được chạy trong một máy ảo hoặc Docker container. – Mỗi vùng chức năng giờ được thực thị bởi một dịch vụ nhỏ. – Ứng dụng web cũng có thể chia nhỏ hơn chuyên cho từng đối tượng người dùng (khách hàng/admin). Ưu nhược điểm của Microservice * Ưu điểm: – Cho phép dễ dàng continuous delivery và deployment các ứng dựng lớn, phức tạp: + Cải thiện khả năng bảo trì - mỗi service tương đối nhỏ do đó dễ hiểu và thay đổi hơn + Khả năng testing dễ dàng hơn - các services nhỏ hơn và nhanh hơn để test + Khả năng triển khai tốt hơn - các services có thể được triển khai độc lập + Cho phép các services được phát triển bởi những team khác nhau.

Mỗi team có thể phát triển, thử nghiệm, triển khai và mở rộng quy mô dịch vụ của mình một cách độc lập với tất cả các team khác. – Giảm thiểu rủi ro: Nếu có lỗi trong một service thì chỉ có service đó bị ảnh hưởng. Các services khác sẽ tiếp tục xử lý các yêu cầu. Trong khi đó, một thành Chương 2: Cơ sở lý thuyết 23 Báo cáo đồ án tốt nghiệp phần hoạt động sai của kiến trúc một khối có thể làm ảnh hưởng toàn bộ hệ thống.

– Dễ dàng thay đổi sử dụng các công nghệ mới: Khi triển khai các services bạn có thể lựa chọn nhiều công nghệ mới. Tương tự khi có thay đổi lớn đối với các services hiện có bạn có thể dễ dàng thay đổi công nghệ. * Nhược điểm: – Các nhà phát triển phải đối phó với sự phức tạp của việc tạo ra một hệ thống phân tán: + Cần implement việc communication giữa các inter-services + Handle partial failure là rất phức tạp vì một luồng xử lý cần đi qua nhiều services + Việc thực hiện các requests trải rộng trên nhiều services khó khăn hơn, điều này cũng đòi hỏi sự phối hợp cẩn thận giữa các teams + Khó khăn trong việc đảm bảo toàn vẹn CSDL nếu triển khai theo kiến trúc cơ sở dữ liệu phân vùng + Triển khai và quản lý microservices nếu làm thủ công theo cách đã làm với ứng dụng một khối phức tạp hơn rất nhiều + Phải xử lý sự cố khi kết nối chậm, lỗi khi thông điệp không gửi được hoặc thông điệp gửi đến nhiều đích đến vào các thời điểm khác nhau Chương 2: Cơ sở lý thuyết 24 Báo cáo đồ án tốt nghiệp 2. Nguyên tắc xây dựng kiến trúc Microservice 1) Single Responsibility Principle (SRP): một service với phạm vi và chức năng giới hạn, tập trung vào một nhiệm vụ giúp quá trình phát triển và triển khai dịch vụ trở nên nhanh chóng hơn.

2) Trong quá trình thiết kế, ta nên xác định và giới hạn các services theo chức năng nghiệp vụ thực tế 3) Đảm bảo microservices có thể phát triển và triển khai độc lập 4) Mục tiêu của thiết kế là phạm vi của microservices phục vụ một nghiệp vụ chứ không chỉ đơn giản làm các dịch vụ nhỏ hơn. Kích thước hợp lý của một service là kích thước đủ để đáp ứng yêu cầu của một chức năng trong hệ thống. 5) Khác với services trong SOA, một microservice không nên có quá nhiều hàm hay chức năng hỗ trợ xung quanh và định dạng thông báo/ gửi tin (messaging) đơn giản. Duy trì tính nhất quán của dữ liệu khi sử dụng kiến trúc Microservice Chương 2: Cơ sở lý thuyết 25 Báo cáo đồ án tốt nghiệp Để duy trì tính nhất quán của dữ liệu khi xây dựng 1 kiến trúc Microservice, ta nên sử dụng Saga pattern thay vì 2 phase-commit/distributed transactions Hình 2: Saga Pattern Ý tưởng của Saga patteren: Một service publishes một event khi dữ liệu của nó thay đổi.

Các services khác consume event đó và cập nhật dữ liệu của chúng. Nếu một transaction thất bại, thì saga sẽ thực hiện một loạt các transactions để hoàn tác các transactions trước đó bằng việc sử dụng là Event Sourcing và Transaction Log Tailing. Chương 2: Cơ sở lý thuyết 26 Báo cáo đồ án tốt nghiệp 2. Tổng quan NodeJS là một framework môi trường hỗ trợ dịch và thực thi chương trình được viết bằng JavaScript mà không cần dùng tới trình duyệt.

NodeJS ra đời nhờ những lập trình viên đầu tiên của JavaScript mở rộng nó từ một ngôn ngữ chỉ có thể thực thi trên trình duyệt thành ngôn ngữ có thể thực thi độc lập trên máy tính. NodeJS cũng giống với trình duyệt hiện nay, được chạy dựa trên V8 JavaScript engine - công cụ giúp trình duyệt dịch và thực thi JavaScript. Ngoài ra, NodeJS cung cấp một số thư viện không có sẵn trong V8 engine • Một số khái niệm tiêu biểu trong NodeJS - Event: mỗi một thao tác, yêu cầu (request) đến server đều được NodeJS xem là một sự kiện (event) - Event Queue: hàng đợi sự kiện là nơi tất cả các sự kiện (event) đã đi vào sẽ lần lượt được xử lý theo cơ chế FIFO, tức là các sự kiện đến server trước sẽ được NodeJS xử lý trước, các sự kiện đến server sau sẽ được xử lý sau. - Callbacks: là các thao tác, các xử lý, các hàm sẽ được thực hiện sau khi đã thực thi hoàn thành một hàm định nghĩa callback.

Việc sử dụng callback giúp cho lập trình viên quản lý các vấn đề về. - Message: nội dung thông báo tương ứng với từng callback. Chương 2: Cơ sở lý thuyết 27 Báo cáo đồ án tốt nghiệp - Blocking I/O: là cơ chế được ứng dụng trong phần lớn các ngôn ngữ server-side, cơ chế này quản lý các request đến server và lần lượt cho thực hiện yêu cầu của request tiếp theo khi request đang xử lý đã hoàn thành. Từ đây dễ thấy được rằng nếu các yêu cầu xử lý của request đến sớm tiêu tốn nhiều thời gian thì các request đến sau bắt buộc phải đợi toàn bộ thời gian xử lý này.

Với NodeJS việc quản lý các request yêu cầu được thay thế bằng cơ chế xử lý Non-Blocking I/O để giải quyết vấn đề thời gian chờ nêu trên. - Thread Pool: là một chương trình viết bằng ngôn ngữ C++ được tích hợp bên trong NodeJS, chương trình này cho phép xử lý đa luồng. Đây chính là môi trường xử lý chính cho tất cả tác vụ được server NodeJS xử lý và các tác vụ này cũng được xử lý trên các luồng khác nhau. - Event Loop: là một vòng lặp vô tận, nó chuyển các yêu cầu đã nhận sang Thread Pool, đồng thời mỗi một yêu cầu cũng được tự động đăng ký một Callback, khi yêu cầu được xử lý xong hàm Callback tương ứng sẽ được thực thi.

Nguyên tắc hoạt động Nguyên tắc hoạt động quan trọng nhất tạo nên khả năng xử lý với tốc độ cao của NodeJS đến từ việc xử lý Non-Blocking. Quá trình xử lý này cho phép NodeJS nhận và xử lý đồng thời nhiều tác vụ thông qua duy nhất một luồng xử lý (Single thread) thay vì tạo nhiều luồng xử lý tương ứng với các request ở các ngôn ngữ Server truyền thống đã có. Các tác vụ được nhận vào luồng xử lý nếu không được quy định tuần tự thực hiện (phải hoàn thành công việc A trước rồi sau đó bắt đầu thực hiện công việc công việc B) sẽ được cho phép truy cập tài nguyên song song lẫn nhau mà không bị khóa lại (Blocking) đợi tác vụ trước đó. Từ đó mà những tác vụ diễn ra không liên quan đến nhau có thể xử lý song song độc lập với nhau, rút ngắn lượng lớn thời gian xử lý cho server NodeJS Chương 2: Cơ sở lý thuyết 28 Báo cáo đồ án tốt nghiệp Kết hợp với xử lý quá trình xử lý Non-Blocking là Callbacks và Event Loop giúp cho NodeJS quản lý tất cả các tác vụ được được thực thi.

Cụ thể khi một tác vụ được xử lý Non-Blocking hoàn thành sẽ gửi về 1 Callback với ý nghĩa thông báo với hệ thống rằng tác vụ đã thực hiện xong hoàn toàn. Trước đó khi các tác vụ này được định nghĩa thì callback của từng tác vụ cũng đã được đưa vào Event Table để chờ các sự kiện (Event) cho phép thực thi. Khi Event mong chờ của tác vụ được diễn ra cũng là lúc các message của tác vụ đang chờ trong Event Table được di chuyển sang Event Queue chờ thực hiện theo nguyên tắc “đến trước thực hiện trước” (First In First Out - FIFO). Song song với quá trình này là quá trình Event Loop thực hiện một vòng lặp vô tận kiểm tra có message nào đang đợi trong Event Queue hay không và Thread Pool có đang thực hiện tác vụ nào hay không, nếu đồng thời có message đang chờ và Thread Pool có thể tiếp nhận tác vụ Event Loop sẽ đưa phần tử đầu tiên của Queue vào Thread Pool xử lý và gửi về callback khi tất cả các message quy định callback tương ứng đã hoàn thành.

Nếu không còn message nào trong Event Queue vòng lặp Event Loop vẫn luôn luôn được chạy để kiểm tra và xử lý ngay khi có tác vụ chờ. Tổng thể với sự kết hợp giữa các đặc trưng tiêu biểu: Non-Blocking I/O, Callbacks, Event Loop một server NodeJS xử lý bất đồng bộ (asynchronous) các đồng bộ các tác vụ được yêu cầu và trả về kết quả ngay khi các tác vụ được hoàn thành thông qua callback. Còn quá trình xử lý và phản hồi callback này được xử lý với sự điều phối, quản lý của vòng lặp vô tận xử lý sự kiện Event Loop lấy từng message của quy định callback thực hiện với tài nguyên hệ thống và phản hồi callback khi tất cả message quy định callback tương ứng đã hoàn thành. Chương 2: Cơ sở lý thuyết 29 Báo cáo đồ án tốt nghiệp 2.

Ưu điểm NodeJS cung cấp khả năng mở rộng cao. NodeJS được nhận xét là dễ mở rộng chương trình cả về chiều rộng lẫn chiều sâu.

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