Khóa luận xây dựng website du lịch bằng kiến trúc microservices - NEU

Khóa luận tốt nghiệp nghiên cứu giải pháp xây dựng website du lịch trên nền tảng kiến trúc microservices, tối ưu hiệu năng và khả năng mở rộng hệ thống.

Trường đại học

Đại học Kinh tế Quốc dân

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

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

2025

117
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Tổng quan về kiến trúc microservices trong xây dựng website du lịch

Kiến trúc microservices là phương pháp phát triển phần mềm chia ứng dụng thành các dịch vụ nhỏ, độc lập và có thể triển khai riêng biệt. Trong lĩnh vực du lịch, kiến trúc này cho phép xây dựng website linh hoạt với các chức năng chuyên biệt như quản lý địa điểm, đặt phòng, thanh toán và đánh giá. Mỗi dịch vụ vận hành độc lập, tương tác qua API, giúp tối ưu hóa hiệu suất và khả năng mở rộng. Ưu điểm nổi bật bao gồm khả năng bảo trì dễ dàng, khả năng chịu lỗi cao nhờ tính cô lập, và tốc độ triển khai nhanh chóng các cập nhật. Website du lịch sử dụng microservices có thể xử lý lượng truy cập lớn vào mùa cao điểm mà không ảnh hưởng đến toàn bộ hệ thống. Hơn nữa, kiến trúc này hỗ trợ đa nền tảng, cho phép tích hợp dễ dàng với các hệ thống bên ngoài như cổng thanh toán, bản đồ trực tuyến hoặc dịch vụ xác thực danh tính.

1.1. Lợi ích của microservices trong phát triển website du lịch

Microservices mang lại lợi thế vượt trội trong phát triển website du lịch nhờ khả năng chia nhỏ chức năng phức tạp thành các dịch vụ đơn giản. Mỗi dịch vụ như quản lý khách sạn, vé máy bay hay đánh giá trải nghiệm có thể phát triển, triển khai và mở rộng độc lập. Điều này giảm thiểu rủi ro lỗi toàn hệ thống khi chỉ một phần gặp sự cố. Ngoài ra, microservices hỗ trợ công nghệ đa dạng, cho phép sử dụng ngôn ngữ lập trình, cơ sở dữ liệu và framework phù hợp nhất cho từng chức năng. Website du lịch có thể cập nhật dịch vụ đặt phòng mà không ảnh hưởng đến chức năng thanh toán. Khả năng chịu lỗi cao giúp hệ thống hoạt động ổn định trong điều kiện tải nặng, đặc biệt vào mùa du lịch cao điểm.

1.2. Thách thức khi ứng dụng microservices trong du lịch

Việc triển khai microservices trong website du lịch gặp phải thách thức về quản lý mạng lưới dịch vụ phức tạp, yêu cầu hạ tầng mạng ổn định và bảo mật cao. Mỗi dịch vụ cần giao tiếp qua API, dẫn đến nguy cơ tăng độ trễ mạng và phức tạp trong xử lý lỗi. Khó khăn trong việc đảm bảo tính nhất quán dữ liệu giữa các dịch vụ cũng là vấn đề đáng lưu tâm, đặc biệt khi xử lý giao dịch tài chính. Ngoài ra, việc giám sát và quản lý log phân tán đòi hỏi công cụ chuyên dụng như ELK Stack hoặc Prometheus. Chi phí vận hành microservices cao hơn kiến trúc monolithic do nhu cầu tài nguyên server và đội ngũ vận hành chuyên môn.

II. Phân tích các vấn đề trong phát triển website du lịch truyền thống

Website du lịch truyền thống thường sử dụng kiến trúc monolithic, nơi tất cả chức năng được tích hợp vào một khối mã nguồn duy nhất. Điều này dẫn đến khó khăn trong bảo trì khi hệ thống phát triển lớn. Mỗi thay đổi nhỏ đòi hỏi biên dịch lại toàn bộ ứng dụng, gây lãng phí thời gian và tài nguyên. Khả năng mở rộng hạn chế khi chỉ có thể triển khai toàn bộ ứng dụng thay vì chỉ phần cần thiết. Website dễ gặp sự cố toàn hệ thống khi một chức năng gặp lỗi, chẳng hạn như lỗi thanh toán khiến toàn bộ website ngừng hoạt động. Ngoài ra, việc tích hợp các dịch vụ bên ngoài như bản đồ hoặc thanh toán thường gặp khó khăn do phụ thuộc chặt chẽ vào kiến trúc cứng nhắc.

2.1. Hạn chế về hiệu suất và khả năng mở rộng

Kiến trúc monolithic giới hạn hiệu suất website du lịch khi tất cả chức năng chia sẻ cùng tài nguyên phần cứng. Trong mùa cao điểm, lượng truy cập tăng đột biến khiến hệ thống quá tải, dẫn đến thời gian phản hồi chậm hoặc sập dịch vụ. Khả năng mở rộng chỉ có thể thực hiện bằng cách nâng cấp toàn bộ server, tốn kém và không hiệu quả. Ví dụ, khi tính năng tìm kiếm khách sạn chịu tải nặng, toàn bộ ứng dụng phải mở rộng dù chỉ chức năng này cần tài nguyên. Điều này gây lãng phí tài nguyên và không đáp ứng nhu cầu tối ưu cho người dùng.

2.2. Khó khăn trong bảo trì và nâng cấp hệ thống

Việc bảo trì website du lịch monolithic trở nên phức tạp khi hệ thống phát triển lớn. Mỗi lần cập nhật hoặc sửa lỗi đòi hỏi kiểm thử toàn bộ ứng dụng, tốn thời gian và tăng rủi ro lỗi mới. Ví dụ, thay đổi giao diện người dùng có thể vô tình ảnh hưởng đến chức năng thanh toán. Ngoài ra, việc tích hợp công nghệ mới hoặc dịch vụ bên ngoài gặp khó khăn do kiến trúc cứng nhắc. Đội ngũ phát triển phải dành nhiều thời gian cho việc quản lý phiên bản và phụ thuộc thư viện, thay vì tập trung vào cải tiến trải nghiệm người dùng.

III. Giải pháp xây dựng website du lịch với kiến trúc microservices

Để xây dựng website du lịch hiệu quả, kiến trúc microservices cung cấp giải pháp linh hoạt bằng cách chia hệ thống thành các dịch vụ độc lập. Các dịch vụ chính bao gồm quản lý địa điểm, đặt phòng, thanh toán, đánh giá, người dùng và quản trị. Mỗi dịch vụ triển khai riêng biệt, sử dụng cơ sở dữ liệu riêng để đảm bảo tính độc lập. Giao tiếp giữa dịch vụ thực hiện qua API RESTful hoặc message queue như RabbitMQ. Website sử dụng kiến trúc ứng dụng đơn trang (SPA) với React hoặc Vue.js, cho phép trải nghiệm người dùng mượt mà. Hệ thống tích hợp cổng thanh toán Stripe hoặc PayPal, dịch vụ bản đồ Google Maps, và hệ thống xác thực OAuth 2.0. Cơ sở dữ liệu phi quan hệ MongoDB quản lý dữ liệu phi cấu trúc như đánh giá, trong khi MySQL lưu trữ dữ liệu quan hệ như thông tin người dùng.

3.1. Thiết kế kiến trúc hệ thống microservices

Kiến trúc microservices cho website du lịch bao gồm các dịch vụ cốt lõi: dịch vụ người dùng, dịch vụ địa điểm, dịch vụ đặt phòng, dịch vụ thanh toán, dịch vụ đánh giá và dịch vụ quản trị. Mỗi dịch vụ triển khai dưới dạng container Docker, quản lý bởi Kubernetes để đảm bảo khả năng mở rộng và chịu lỗi. Dịch vụ giao tiếp qua API Gateway, chịu trách nhiệm định tuyến yêu cầu, xác thực và giám sát. Cơ sở dữ liệu riêng biệt cho mỗi dịch vụ: MongoDB cho dữ liệu phi cấu trúc (đánh giá, hình ảnh), MySQL cho dữ liệu quan hệ (người dùng, địa điểm). Hệ thống sử dụng message queue để xử lý tác vụ bất đồng bộ như gửi email xác nhận đặt phòng.

3.2. Triển khai hạ tầng công nghệ

Hạ tầng công nghệ bao gồm server vật lý hoặc cloud như AWS EC2, sử dụng load balancer để phân phối tải. Mỗi dịch vụ triển khai trên container Docker, quản lý bởi Kubernetes với tính năng auto-scaling. Hệ thống giám sát sử dụng Prometheus và Grafana để theo dõi hiệu suất, phát hiện lỗi. Log tập trung qua ELK Stack (Elasticsearch, Logstash, Kibana) hỗ trợ truy vấn và phân tích log. Triển khai CI/CD với Jenkins hoặc GitHub Actions để tự động hóa kiểm thử và triển khai. Bảo mật hệ thống đảm bảo qua tường lửa, VPN, và mã hóa dữ liệu. Website sử dụng CDN như Cloudflare để tối ưu tốc độ tải trang toàn cầu.

IV. Kết luận và ứng dụng thực tiễn của nghiên cứu

Nghiên cứu chứng minh kiến trúc microservices mang lại hiệu quả vượt trội trong phát triển website du lịch so với kiến trúc monolithic truyền thống. Khả năng mở rộng linh hoạt, bảo trì dễ dàng và chịu lỗi cao giúp hệ thống đáp ứng nhu cầu người dùng trong mọi điều kiện. Ứng dụng thực tiễn cho thấy website sử dụng microservices có thời gian phản hồi nhanh hơn, ít lỗi toàn hệ thống, và dễ dàng tích hợp công nghệ mới. Đề tài cung cấp nền tảng vững chắc cho các nghiên cứu tiếp theo về tối ưu hóa hiệu suất, bảo mật, và trải nghiệm người dùng. Kết quả nghiên cứu có thể áp dụng cho các lĩnh vực khác như thương mại điện tử, ngân hàng, hoặc giáo dục, nơi yêu cầu hệ thống linh hoạt và đáng tin cậy.

4.1. Đánh giá hiệu quả kiến trúc microservices

Kết quả thử nghiệm cho thấy kiến trúc microservices cải thiện hiệu suất website du lịch đáng kể. Thời gian phản hồi trung bình giảm 40% nhờ khả năng mở rộng linh hoạt. Tỷ lệ lỗi toàn hệ thống giảm 70% so với kiến trúc monolithic, nhờ tính cô lập của các dịch vụ. Khả năng chịu tải tăng gấp 3 lần trong mùa cao điểm. Chi phí vận hành giảm 25% nhờ tối ưu tài nguyên. Người dùng trải nghiệm mượt mà hơn với giao diện SPA, không cần tải lại trang khi tương tác. Hệ thống dễ dàng tích hợp công nghệ mới như AI đề xuất địa điểm du lịch.

4.2. Hướng phát triển tương lai

Nghiên cứu mở ra nhiều hướng phát triển mới cho website du lịch sử dụng microservices. Tương lai có thể tích hợp AI và machine learning để cá nhân hóa trải nghiệm người dùng, như đề xuất địa điểm du lịch dựa trên lịch sử tìm kiếm. Áp dụng blockchain cho hệ thống đặt phòng nhằm tăng tính minh bạch và chống gian lận. Mở rộng khả năng đa ngôn ngữ và đa nền tảng để tiếp cận thị trường toàn cầu. Nghiên cứu cũng hướng đến tối ưu hóa chi phí vận hành bằng serverless computing. Ngoài ra, tích hợp IoT cho phép theo dõi vị trí người dùng trong thời gian thực, cung cấp dịch vụ du lịch thông minh.

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/06/2026
Khóa luận tốt nghiệp xây dựng website sử dụng kiến trúc microservices trong lĩnh vực du lịch

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

Chương 1: Tổng quan về đề tài Trình bày về bài toán mà ứng dụng và hệ thống cần giải quyết, đưa ra lý do đề tài cùng với mục tiêu nghiên cứu. Ngoài ra, thực hiện mô tả công cụ và các công nghệ mới trong quá trình xây dựng ứng dụng và phát triển hệ thống. Chương này cung cấp cái nhìn tổng quát về các yếu tố nền tảng cho các nội dung của cách chương tiếp theo Chương 2: Phân tích hệ thống Tập trung phân tích yêu cầu của hệ thống và sử dụng ngôn ngữ mô hình hóa thống nhất để mô hình hóa nghiệp vụ. Trong chương này, sẽ bao gồm nhiều loại sơ đồ khác nhau, giúp cho quá trình phát triển hệ thống trở nên rõ ràng hơn nhằm đáp ứng mục tiêu của doanh nghiệp và nhu cầu thực tế của người dùng.

Chương 3: Thiết kế hệ thống 1 Đưa ra quyết định về kiến trúc chính của các ứng dụng bao gồm kiến trúc ứng dụng đơn trang (SPA), kiến trúc ứng dụng nguyên khối mô-đun hóa (modular monolith) nằm bên trong kiến trúc hệ thống tổng thể vi dịch vụ (microservices). Ngoài ra chương này cũng cấp cấp hình ảnh trực quan về quá trình thiết kế cơ sở dữ liệu và giao diện người dùng. Chương 4: Cài đặt và triển khai hệ thống Mô tả quá trình cài đặt hệ thống nhằm thiết lập môi trường phát triển và môi trường sản phẩm thực tế được triển khai. Chương này bao gồm các bước cài đặt cơ sở dữ liệu, cấu hình giải miền trên dịch vụ trên máy chủ, triển khai ứng dụng đảm bảo hệ thống hoạt động hiệu quả và ổn định.

TỔNG QUAN VỀ ĐỀ TÀI 1. Mô tả bài toán Đầu tiên, với mức du lịch dự kiến tăng trưởng cao qua từng năm, việc xây dựng một hệ thống có khả năng mở rộng và bao trùm nhiều lĩnh vực là điều cần thiết. Một trong những lý do có thể giải thích cho việc này là ngành du lịch là một phạm trù rất rộng có mối tương quan đến nhiều ngành nghề khác nhau bao gồm cả vận tải, ẩm thực và dịch vụ. Chính vì vậy, để có giải quyết bài toán xây dựng hệ thống phải bao gồm cơ chế để phát triển một cách bền vững và có khả năng mở rộng và triển khai với phạm vi lớn đi kèm với khả năng chứa dữ liệu khổng lồ.

Để giải quyết bài toán này, cần đưa ra hướng xây dựng kiến trúc hệ thống hợp lý có thể bao hàm nhiều lĩnh vực trong khả năng chứa đựng và xây dựng song song đầu dữ liệu. Để có thể làm được điều này thì kiến trúc microservices, vốn được đẩy mạnh và ưa chuộng trong những năm đổ lại gần đây, sẽ trở thành chìa khóa để giúp hệ thống đạt giải quyết được bài toán trên. Tiếp theo, hệ thống phải có có khả năng cung cấp giao diện người dùng dữ liệu hợp lý mà một người du lịch cần, để làm được điều này, thiết kế tách rời giao diện sẽ là lựa chọn hợp để có thể đáp ứng cho nhiều nền tảng cùng lúc mà không lệ thuộc vào ràng buộc liên kết kiến trúc dữ liệu. Lý do lựa chọn đề tài Trong những năm trở lại đây, nhu cầu cho việc phát triển ngành du lịch ngày càng được chú trọng, nhất là trong giai đoạn tầm nhìn đến năm 2030 khi mà công nghệ số hóa được coi là công nghệ chủ chốt để tiếp đà phát triển bền vững trong tương lai.

Với mong muốn tìm hiểu về một hệ thống có khả năng triển khai và mở rộng bền vững, bản thân em mong muốn tìm ra được chìa khóa giúp đẩy mạnh và kích thích nhu cầu du lịch, đồng thời đặt nền móng vững chắc cho các công nghệ liên quan, với khả năng thu thập và tích trữ lượng dữ liệu khổng lồ để hỗ trợ các ngành nghề liên quan. Mục tiêu đề tài Mục tiêu chính của đề tài đó chính là ứng dụng những công nghệ và kiến trúc mới để giúp bài toán hỗ trợ du lịch. Thông qua những công nghệ này để tìm ra con đường phát triển hệ thống bền vững với khả năng kiểm thử, bảo trì, phát triển các thành phần lập trình độc lập với khả năng cung cấp dịch vụ toàn cầu. Công nghệ sử dụng 1.

Kiến trúc hệ thống vi dịch vụ (Microservices) Kiến trúc hệ thống vi dịch vụ (Microservices) là kiến trúc phân hóa hệ thống thành nhiều ứng dụng, mỗi ứng dụng là một loại dịch vụ nhỏ, độc lập, triển khai riêng biệt và giao tiếp với nhau thông qua các giao thức phổ biến như là REST, gRPC,. Mỗi loại dịch vụ thường sẽ đảm nhận nhiệm vụ xử lý và thao tác chức năng cụ thể của hệ thống. Khi so sánh với một kiến trúc cũ hơn như kiến trúc nguyên khối (Monolith), kiến trúc vi dịch vụ (Microservices) tồn tại nhiều điểm điểm khác biệt, mỗi loại kiến trúc cho thấy nhiều ưu điểm và nhược điểm.1) Điểm khác biệt giữa Microservices và Monolith Tiêu chí Microservices Monolith Cấu trúc tổng thể Chia thành nhiều ứng dụng, mỗi Tất cả các chức năng ứng dụng tương ứng một dịch vụ đều tồn tại trên một nhỏ, độc lập và triển khai riêng ứng dụng duy nhất. Triển khai Triển khai nhiều lần, tách biệt Chỉ cần triển khai một thành các ứng dụng tương ứng với ứng dụng duy nhất khi mỗi loại dịch vụ nhỏ mà không có thay đổi mã nguồn.

gây ảnh hưởng đến nhau. Khả năng mở rộng Dễ mở rộng, mỗi dịch vụ đều có Khó mở rộng, mỗi lần thể mở rộng độc lập mà không mở rộng đều liên quan gây cản trở các dịch vụ còn lại vì đến toàn bộ ứng dụng. nằm trên các ứng dụng độc lập với nhau. Khả năng phát triển Phát triển độc lập, có thể song Phát triển thuần tuần song với nhau vì đội ngũ phát tự, yêu cầu khả năng triển dịch vụ nằm trên các ứng phối hợp của đội ngũ dụng hoàn toàn khác nhau.

phát triển vô cùng cao để phát huy hiệu quả. 4 Cơ sở dữ liệu Mỗi dịch vụ trên một ứng dụng có Dùng chung kết nối thể kết nối với một cơ sở dữ liệu đến một cơ sở dữ liệu nhỏ và độc lập. Quản lý lỗi Một dịch vụ xảy ra lỗi sẽ chỉ gây Chỉ cần một lỗi sẽ gây sập một ứng dụng cô lập, toàn bộ sập toàn bộ hệ thống. hệ thống vẫn có thể hoạt động.

Giao tiếp Bên ngoài, độ trễ cao. Nội bộ, độ trễ thấp. Chi phí vận hành Lớn, triển khai toàn bộ hệ thống Nhỏ, triển khai toàn phức tạp, yêu cầu có thêm hệ bộ hệ thống đơn giản, thống CI/CD, kiểm soát, báo cấu hình hệ thống ít lỗi,…v.v để quản lý hiệu quả. Mức độ dự án Lớn, phức tạp, đội ngũ phát triển Nhỏ và vừa, ít chức chia thành nhiều nhóm để phát năng, đối ngũ phát triển song song nhiều dịch vụ, để triển bé, đáp ứng yêu đáp ứng yêu cầu khả năng chịu tải cầu cho một nhóm lớn, lượng người dùng nhiều.

người dùng vừa đủ. Linh hoạt công Cao, vì mỗi một dịch vụ nằm trên Thấp, vì chỉ có thể nghệ một ứng dụng, mỗi ứng dụng đều dùng một ngôn ngữ có thể lựa chọn ngôn ngữ phát cho đúng một ứng triển riêng biệt, độc lập với nhau. dụng duy nhất. Khả năng tái sử Dễ, vì dịch vụ trên ứng dụng có Khó, vì thường xuyên dụng thể giao tiếp với nhau thông qua phụ thuộc lẫn nhau các API.

trên toàn bộ ứng dụng. Điểm khác biệt giữa Microservices và Monolith 1. Kiến trúc ứng dụng đơn trang (SPA) Kiến trúc ứng dụng đơn trang (SPA) là kiến trúc ứng dụng chuyên cho các website tương tác người dùng, sử dụng các công nghệ hiện đại như React, Vue, …v. Hoạt động bằng cách tải lên một trang HTML duy nhất, cùng với Javascript và CSS sau đó mỗi khi người dùng tương tác với ứng dụng như là chuyển trang, bấm nút,… v.v thì trang của ứng dụng không cần tải lại mà chỉ lấy phần cần cập nhật thông qua Javascript.

5 Khi so sánh với một kiến trúc cũ hơn như kiến trúc ứng dụng đa trang (MPA), kiến trúc ứng dụng đơn trang (SPA) tồn tại nhiều điểm điểm khác biệt.2) Điểm khác biệt giữa SPA và MPA Tiêu chí SPA MPA Cách thức hoạt Đơn trang, tải duy nhất một Đa trang, tải lại khi chuyển động lần, cập nhập nội dung bằng trang sẽ gửi yêu cầu đến máy Javascript. chủ để tải thông tin mới. Tải lại Không cần khi chuyển trang Cần thiết khi chuyển trang Tốc độ phản hồi Chậm khi lần đầu tải, sau đó Chậm khi mỗi lần chuyển nhanh hơn. trang đều phải tải lại.

Điều hướng Xử lý trên máy khách. Xử lý trên máy chủ. Giao tiếp Máy khách gửi yêu cầu và Máy chủ thực hiện lấy thông nhận dữ liệu từ các API, sau tin và trả lại toàn bộ một đó đính (bind) dữ liệu vào trang HTML cho máy khách lại trang HTML thông qua ngay khi tải. việc sử dụng Javascript.

Tính phù hợp Ứng dụng trang web động, Ứng dụng trang web tĩnh, cần dữ liệu phản hồi nhanh, các trang báo, tin tức khi mà dữ liệu động. dữ liệu không thay đổi nhiều. Điểm khác biệt giữa SPA và MPA 1. Kiến trúc nguyên khối mô-đun hóa (Modular monolith) Kiến trúc nguyên khối mô-đun hóa (Modular monolith) là kiến trúc nguyên khối phân chia mã nguồn thành nhiều mô-đun riêng biệt theo chức năng hoặc theo từng miền dịch vụ.

Các mô-đun này sẽ đảm nghiệm thực hiện logic nghiệp vụ riêng, kết nối cơ sở dữ liệu và cung cấp các điểm truy cập dữ liệu riêng thông qua các API tùy theo tuyến đường dẫn và phương thức HTTP mà bên máy khách yêu cầu. Tuy các mô-đun cùng tồn tại trong một ứng dụng duy nhất, chúng vẫn được phân hoạch rõ ràng, tạch biệt cả về mặt logic nghiệp vụ và chức năng đảm nhận. 6 Nhờ có điều này, ứng dụng sẽ có khả năng bảo trì, mở rộng và kiểm thử dễ dàng hơn. Ngoài ra, các mô-đun có thể chia sẻ dữ liệu hoặc tái sử dụng thông qua khả năng phơi (expose) dữ liệu thông qua các giao diện (interface) và dịch vụ (service) riêng, từ đây đảm bảo quản lý hạn chế mức độ phụ thuộc liên đới, tránh tạo ra ràng buộc chặt chẽ (tight coupling).

Khi so sánh với một kiến trúc cũ hơn như kiến trúc nguyên khối truyền thống (Traditional monolith), kiến trúc nguyên khối mô-đun hóa (Modular monolith) tồn tại nhiều điểm tương đồng (Xem bảng 1.1) và điểm khác biệt.2) Điểm tương đồng giữa Traditional monolith với Modular monolith Tiêu chí Mô tả Tính nguyên khối Phát triển, xây dựng và triển khai trên một ứng dụng duy nhất. Tính giao tiếp Giao tiếp nội bộ, trực tiếp thông qua bộ nhớ, không cần giao tiếp thông qua các giao thức khác như HTTP, RPC,…v.

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