Ứng dụng kiến trúc microservice (MSA) phát triển với Spring Cloud
Đây là quá trình thử phát triển ứng dụng microservice sử dụng bộ sản phẩm Spring Cloud thuộc Spring framework. Đây là bài giảng giúp bạn học cách sử dụng và cấu hình Spring Cloud như một Ứng dụng Cloud Native.
8,023 học viên
Độ khó Cơ bản
Thời gian Không giới hạn


Tin tức
9 bài viết
Lần này, chúng tôi đã mở khóa học mới Phát triển dịch vụ LLM thực chiến dành cho nhà phát triển Spring (Phần 1). Dù có thể hơi muộn một chút, khóa học được xây dựng nhằm giúp bạn học những nội dung cần thiết để phát triển ứng dụng LLM bằng Spring framework quen thuộc với các nhà phát triển Java. Rất mong nhận được sự quan tâm của các bạn.
Tại sao tôi tạo ra khóa học này?
Dạo gần đây, những từ khóa như RAG, tìm kiếm vector và tác nhân AI có thể bắt gặp ở khắp nơi, nhưng tài liệu hướng dẫn chuyên sâu ở cấp độ thực tế về việc “tích hợp chúng vào backend Spring Boot như thế nào” lại không nhiều.
Khóa học này đưa nguyên vẹn vào chương trình những vấn đề tôi từng gặp khi gỡ lỗi endpoint đề xuất RAG thực tế — trải nghiệm chất lượng tìm kiếm bị giảm do ý nghĩa bị phá vỡ khi chia nhỏ tài liệu theo đơn vị token, cũng như quá trình chuyển sang chiến lược chia theo đoạn văn để giải quyết vấn đề. Thay vì chỉ đưa ra đoạn mã đúng như trong các tutorial, khóa học sẽ cùng bạn theo dõi quá trình “tại sao không hoạt động → chẩn đoán như thế nào → khắc phục ra sao”.
Khóa học này được khuyến nghị cho những người sau đây:
Các lập trình viên backend đã có kinh nghiệm với Spring Boot nhưng mới bắt đầu phát triển dịch vụ LLM/AI
Các nhà phát triển muốn áp dụng RAG và tìm kiếm vector ở cấp độ dự án thực tế, thay vì chỉ theo các bài hướng dẫn.
Những người thực tế cần tự triển khai các tính năng AI nội bộ (chatbot, tìm kiếm tài liệu, đề xuất, v.v.) dựa trên Spring
Chỉ cần có kinh nghiệm xây dựng REST API bằng Spring Boot là đủ. Không cần có kiến thức nền tảng về AI/LLM.
Bạn sẽ học gì?
1. Nền tảng cốt lõi của Spring AI Cách sử dụng cơ bản ChatClient, đầu ra có cấu trúc (Structured Output), triển khai phản hồi streaming
2. Xây dựng pipeline RAG Tích hợp kho vector, so sánh các chiến lược chia nhỏ tài liệu và xử lý sự cố trong thực tế, cải thiện chất lượng tìm kiếm, thiết kế prompt
3. Mở rộng công cụ và đa phương thức Tích hợp các công cụ bên ngoài bằng MCP (Model Context Protocol), xử lý đầu vào đa phương thức như hình ảnh, tích hợp Dify
4. Ổn định dịch vụ và dự án thực tế Áp dụng các biện pháp bảo vệ, thiết kế dịch vụ đáng tin cậy và thực hiện dự án mini tích hợp những nội dung đã học cho đến nay
Phần phụ lục cũng hướng dẫn cách sử dụng công cụ lập trình AI và Ollama.
Giới thiệu về loạt bài
Sản phẩm ra mắt lần này là Part 1 của toàn bộ series. Trong Part 2 và 3, chúng tôi dự kiến sẽ đề cập đến các kiến trúc chuyên sâu hơn và những trường hợp thực tế; khi toàn bộ series được phát hành, chúng tôi cũng dự định chuẩn bị chương trình giảm giá cho trọn bộ.
📌 Truy cập khóa học: https://inf.run/VVpnV
Nếu có điều gì thắc mắc hoặc câu hỏi liên quan đến giáo trình, hãy thoải mái để lại bình luận. Thông qua Part 1, tôi muốn cùng các bạn thực hiện bước đầu tiên trong việc tích hợp LLM vào dịch vụ Spring của mình.
Bài giảng Spring Boot 3.5 + Spring Cloud 2025.0.x đang được cập nhật.
Xin chào, tôi là Lee Do-won.
Bản cập nhật thứ hai cho khóa học "Microservice Application (MSA) Develop with Spring Cloud" mới phát triển đang được tiến hành. Bản cập nhật này không chỉ về các ví dụ thực tế mà còn về nội dung bài giảng. (Spring boot 3.5 + Spring Cloud 2025.0.0)
Như đã thông báo trước đó, chúng tôi đã lên kế hoạch hoàn thành vào cuối tháng 6, nhưng do xung đột với lịch trình dự án hiện tại nên chúng tôi không thể hoàn thành đúng thời hạn. Tôi xin lỗi một lần nữa.
Trước hết, bài giảng Phần 1 đã được cập nhật và mặc dù chúng tôi không thể cập nhật tất cả cùng một lúc, chúng tôi vẫn có kế hoạch cập nhật Phần 2, Phần 3... tuần tự mỗi tuần.
Khi chúng tôi cập nhật nội dung của bài giảng này, một số nội dung mới đã được thêm vào, vì vậy tôi nghĩ sẽ tốt nếu chúng ta cùng nhau tham khảo.
Một lần nữa, tôi muốn cảm ơn mọi người vì đã quan tâm tới bài giảng.
Vào cuối tháng 5, chúng tôi cũng đã mở một bài giảng về Spring Cloud Patterns, đã bị hoãn lại một thời gian. Nếu bạn đã học khóa MSA cơ bản, tôi sẽ rất cảm kích nếu bạn cũng quan tâm đến phần này.Ngoài ra, chúng tôi đã tạo ra lộ trình để giúp bạn học các khóa học hiện đang diễn ra.
Phát triển và triển khai các dịch vụ siêu nhỏ bằng Spring Cloud và Jenkins
Ứng dụng Microservices (MSA) được phát triển với Spring Cloud
Xây dựng một đường ống CI/CD bằng Jenkins
Spring Boot + MSA + CI/CD: Xây dựng một đường ống phát triển tự động
[Sửa đổi ngày 27-11-2023] Phát triển Dịch vụ Web RESTful bằng Spring Boot 3.x
Ứng dụng Microservices (MSA) được phát triển với Spring Cloud
Xây dựng một đường ống CI/CD bằng Jenkins
Giới thiệu Spring Boot & MSA dành cho các nhà phát triển mới vào nghề
[Sửa đổi ngày 27-11-2023] Phát triển Dịch vụ Web RESTful bằng Spring Boot 3.x
Ứng dụng Microservices (MSA) được phát triển với Spring Cloud
Từ Spring Boot đến Docker: Lộ trình để hoàn thiện phát triển Cloud Native
[Sửa đổi ngày 27-11-2023] Phát triển Dịch vụ Web RESTful bằng Spring Boot 3.x
Ứng dụng Microservices (MSA) được phát triển với Spring Cloud
Xây dựng một đường ống CI/CD bằng Jenkins
Công nghệ ảo hóa Docker cho DevOps (Private Harbor Registry)
Từ những điều cơ bản của kiến trúc vi dịch vụ đến việc sử dụng các mẫu
Ứng dụng Microservices (MSA) được phát triển với Spring Cloud
Từ người mới bắt đầu đến người thực hành! Hướng dẫn đầy đủ về các mẫu thiết kế MSA
Xin chào, đây là Lee Do-won.
Bản cập nhật đầu tiên của bài giảng “Ứng dụng microservice (MSA) được phát triển với Spring Cloud”, vốn bị hoãn lại, đã được hoàn thành. Trong bản cập nhật này, các ví dụ thực hành là những thay đổi từ phiên bản Spring boot 2.x hiện có sang phiên bản Spring boot 3.x. Chúng tôi dự định cập nhật nội dung bài giảng lần thứ hai vào nửa cuối năm nay.
Như đã thông báo trước đó, chúng tôi dự định sẽ hoàn thành đúng tiến độ vào cuối tháng 6, nhưng nó trùng với tiến độ dự án hiện tại và chúng tôi không thể thực hiện đúng tiến độ. Tôi xin lỗi một lần nữa.
Khi nội dung bài giảng này được cập nhật, một số nội dung mới đã được thêm vào nên các bạn tham khảo thêm cũng rất hay. Phần bổ sung là về việc áp dụng API Swagger (OAS 3.0) và định cấu hình tệp kê khai K8s cần thiết để triển khai các ứng dụng (dịch vụ) Spring Boot trong Kubernetes.
Mã nguồn đã được chia sẻ trên github nhưng một số thay đổi hoặc bổ sung đã được thực hiện khi ghi lại nội dung, vì vậy chúng tôi khuyên bạn nên thực hành với mã mới nhất. Phần cập nhật của mã thực hành như sau.
joneconsulting/toy-msa: Một dự án đồ chơi để thực hành mas. (github.com)
(Chi nhánh: springboot3.2, springboot3.2_k8s)
Khám phá dịch vụ Eureka
Dịch vụ cấu hình
Dịch vụ đầu tiên
Dịch vụ thứ hai
Dịch vụ Apigateway
Kafka
Dịch vụ danh mục
Dịch vụ đặt hàng
Dịch vụ người dùng
Triển khai Kubernetes
Truy tìm phân tán (với Zipkin)
API vênh vang (OAS 3.0)
Ngoài ra, chúng tôi sẽ sớm tổ chức sự kiện mà chúng tôi đã thông báo sẽ tổ chức sau khi cập nhật.
Cảm ơn!
Xin chào, đây là Lee Do-won.
Đầu tiên, tôi xin cảm ơn các học viên tham gia khóa học “Ứng dụng microservice (MSA) được phát triển với Spring Cloud”. Tôi viết thư này để xin lỗi vì việc cập nhật bài giảng này bị trì hoãn theo kế hoạch.
Như đã đề cập nhiều lần trên bảng câu hỏi, việc cập nhật bài giảng cho bài giảng này đã được lên kế hoạch từ tháng 1 đến tháng 2, nhưng tiến độ đã bị trì hoãn do một số vấn đề. Là một người hướng dẫn đang chuẩn bị cho một bài giảng, cuối cùng tôi đã trì hoãn nó hàng ngày vì các vấn đề cá nhân và công ty. Cá nhân tôi không hề nghi ngờ rằng đó là lỗi của tôi khi tôi đã mất quá nhiều thời gian để chuẩn bị cho bài giảng.
Tôi biết đó là một cái cớ, nhưng hãy để tôi nói với bạn một vài điều: Tôi đã ghi lại tất cả các bài giảng dự bị vào tháng 4 năm ngoái do sự cố phần cứng (máy tính xách tay bị hỏng và phải thay thế), và có vấn đề với một dự án đang diễn ra nên rất khó phân bổ thời gian thông thường. Tuy nhiên, tôi đã dành thời gian để ghi lại bài giảng nhưng tôi muốn bày tỏ lời xin lỗi chân thành vì bất kỳ sự bất tiện nào đã gây ra cho những người đang chờ đợi.
Bài giảng này hiện đang được chuẩn bị để cập nhật bắt đầu từ tháng 6 khi công việc hoàn thành. Chúng tôi sẽ đánh giá cao nếu bạn có thể đợi lâu hơn một chút.
Một lần nữa, chúng tôi xin lỗi vì bất kỳ sự bất tiện nào gây ra.
- Bồi thường cho Lee Do-won -
Bắt đầu với Apache Kafka 3.7 được phát hành gần đây, nó cũng chính thức có sẵn ở dạng Docker.
Chi tiết lớp hình ảnh - apache/kafka:3.7.0 | Trung tâm Docker
Mình nghĩ các bạn có thể cài docker desktop tùy theo OS mình đang sử dụng và sử dụng ngay nhé.
Trang web nói rằng cả linux/amd64 và linux/arm64 đều được hỗ trợ, vì vậy có vẻ như nó có thể được sử dụng trên chip MacOS Apple.
docker run --env CONFIG_NAME=CONFIG_VALUE -p 9092:9092 apache/kafka:3.7.0Nếu bạn gặp khó khăn khi khởi động Kafka, vui lòng thử chạy nó với Docker Kafka.
Cảm ơn .
Xin chào các bạn sinh viên,
Đây là Do-won Lee, người đang giảng bài “Ứng dụng microservice (MSA) được phát triển với Spring Cloud”.
Mã mẫu được sử dụng trong bài giảng này đã được cập nhật lên phiên bản mới nhất như hình bên dưới.
Bạn có thể kiểm tra mã đã thay đổi trên Github.
https://github.com/joneconsulting/toy-msa/tree/springboot3.2
Chúng tôi dự định bổ sung, cập nhật bài giảng theo mã cập nhật mới nhất.
2024-02-02
OpenJDK 21
File ví dụ đã được cập nhật để phù hợp với phiên bản Spring Boot 3.2.2 + Spring Cloud 2023.0.0.
Các ví dụ đăng ký, đăng nhập và xác thực đã thay đổi với phiên bản Spring Security 6.
Phiên bản trước (Spring Boot 2.7.6) có thể được tìm thấy trong nhánh chính.
Cảm ơn
Xin chào, đây là Lee Do-won.
Virus Corona dường như đang dần dịu đi và chúng ta đang trở lại cuộc sống xã hội bình thường.
Mùa hè năm 2022 đang bắt đầu. Có vẻ như mùa mưa đang bắt đầu và thật khó để nhìn thấy bầu trời trong xanh.
Tôi không có gì để nói ngoại trừ lời xin lỗi đến những ai đang chờ đợi bài giảng tiếp theo của " Ứng dụng microservice (MSA) được phát triển với Spring Cloud ". Theo kế hoạch ban đầu, buổi giảng lẽ ra khai giảng vào tháng 1 năm ngoái đã bị hoãn lại sang tháng 2 và tháng 3 do dự án đang triển khai có vấn đề, nhưng vẫn chưa khai giảng... nhưng... thực sự sẽ sớm thôi! Chúng tôi đang thực hiện những chuẩn bị cuối cùng để khai trương.
Bài giảng tiếp theo sẽ về CI/CD theo lịch trình. Hôm nay, trước tiên tôi xin giới thiệu mục lục của bài giảng CI/CD.
Bài giảng gồm 6 đến 7 phần. Tùy thuộc vào việc phần Phụ lục có được đưa vào bài giảng này hay không mà nó có thể sẽ được chia thành 6 hoặc 7 phần.
Phần 1. DevOps và CI/CD
1-1. DevOps và CI/CD
1-2. Quy trình làm việc CI/CD
1-3. Cài đặt Jenkins
1-4. Bài tập số 1
Phần 2. Sử dụng CI/CD bằng Jenkins
2-1. Tích hợp Git & Maven cho CI/CD
2-2. Bài tập số 2
2-3. Tích hợp máy chủ Tomcat cho CI/CD
2-4. Bài tập số 3
2-5. Cài đặt thăm dò ý kiếnSCM
2-6. Định cấu hình môi trường phòng thí nghiệm bằng Docker
2-7. Bài tập số 4
Phần 3. Jenkins + Cơ sở hạ tầng dưới dạng Code (Quản lý cấu hình bằng Ansible)
3-1. IaC
3-2. Tổng quan về Ansible
3-3. Cài đặt Ansible
3-4. Playbook Ansible
3-5. Bài tập số 5
3-6. Triển khai hình ảnh Docker
3-7. Bài tập số 6
Phần 4. Tích hợp Jenkins + Ansible + Kubernets
4-1. Triển khai đến cụm Kubernetes
4-2. Tích hợp Ansible + Kubernetes
4-3. Bài tập số 7
4-4. quá trình CI/CD
4-5. Bài tập số 8
4-6. Cài đặt Minikube (chip Apple Silicon)
Phần 5. Sử dụng Jenkins nâng cao
5-1. Sử dụng đường ống phân phối
5-2. Cấu hình đường ống Jenkins
5-3. Bài tập số 9
5-4. Bài tập số 10
5-5. thực hành
5-6. Phân tích tĩnh SonarQube
Phần 6. Triển khai lên đám mây công cộng
6-1. Tạo phiên bản AWS EC2 và cài đặt Docker
6-2. Triển khai lên AWS
6-3. Định cấu hình cụm Kubernetes bằng Kops
6-4. Tạo phiên bản máy chủ NCP và cài đặt Docker
6-5. Triển khai tới NCP
Phụ lục
A-1. Yêu cầu cài đặt SW
A-2. Cài đặt máy chủ Tomcat
A-3. Máy chủ SSH
A-4. Cài đặt XShell và MobaXterm cho người dùng Windows
A-5. Cài đặt đầu cuối cho người dùng MacOS
Chúng tôi xin cảm ơn bạn một lần nữa vì đã quan tâm đến bài giảng và chúng tôi mong sớm được gặp lại bạn với một bài giảng tuyệt vời.
Cảm ơn
Xin chào, đây là Lee Do-won.
Đã 6 tháng kể từ khi tôi bắt đầu dạy "Ứng dụng microservice được phát triển với Spring Cloud". Nhiều sinh viên hơn dự kiến đã thể hiện sự quan tâm. Cảm ơn bạn một lần nữa.
Ngoài ra, tôi sẽ sớm có thể tiết lộ bài giảng tiếp theo mà tôi dự định dạy trong năm nay, vì vậy tôi đăng bài này ở đây trong phần tin tức về bài giảng. Bài giảng tiếp theo sẽ nói về CI/CD và chúng ta sẽ làm việc về CI/CD bằng cách sử dụng nguồn mở có tên Jenkins. Nội dung bài giảng như sau: Tưởng rằng việc chuẩn bị sẽ nhanh chóng hoàn thành vì nội dung bài giảng ít hơn “Ứng dụng microservice được phát triển với Spring Cloud”, nhưng vì lý do này hay lý do khác nên tôi bận nên đến bây giờ việc chuẩn bị mới hoàn tất. Tôi hy vọng việc ghi âm bài giảng sẽ được hoàn thiện và phát hành chính thức vào khoảng giữa tháng 10.
Cảm ơn

