inflearn logo

Ứ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.

(4.9) 485 đánh giá

8,039 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

Spring Cloud
Spring Cloud
MSA
MSA
Spring Boot
Spring Boot
Kafka
Kafka
Architecture
Architecture
Spring Cloud
Spring Cloud
MSA
MSA
Spring Boot
Spring Boot
Kafka
Kafka
Architecture
Architecture

Tin tức

11 bài viết

  • kenneth님의 프로필 이미지

    Xin chào. Chúng tôi đã bổ sung một bài giảng bổ sung mới vào khóa học Phát triển dịch vụ LLM thực tế dành cho lập trình viên Spring (Phần 1). Nội dung hướng dẫn tích hợp mô hình ra quyết định Jev của TypeSafe AI mới được công bố vào ứng dụng Spring Boot, với thời lượng khoảng 1 giờ.

    Tại sao thêm nội dung này
    Trong Section 4, chúng ta đã tìm hiểu cách nhận phản hồi của LLM dưới dạng đối tượng Java bằng entity(), cũng như cạm bẫy trong thực tế khi mô hình bọc JSON trong code fence khiến việc phân tích cú pháp bị lỗi. Dù yêu cầu bằng prompt hay tự động hóa bằng entity(), vẫn còn một hạn chế: cuối cùng, đó vẫn là cách "nhờ" LLM trả về đúng định dạng.
    Jev có cách tiếp cận khác. Thay vì viết câu trả lời, nó chọn một đáp án trong số các lựa chọn được định trước và trả về cùng với xác suất. Nói cách khác, định dạng được đảm bảo một cách có cấu trúc. Khi xử lý cùng một đầu vào theo hai cách, chúng ta sẽ hiểu rõ hơn nhiều về những điều cần cân nhắc khi thiết kế "đầu ra có cấu trúc". Vì vậy, tôi đã tổng hợp nội dung này như phần tiếp nối của Section 4.

    Bạn sẽ học gì

    1. Khái niệm về các mô hình Jev và System One: ý nghĩa của việc trả về "quyết định có kiểu dữ liệu được xác định" thay vì văn bản

    2. Sự khác biệt giữa LLM và Jev: câu trả lời tự luận và câu trả lời trắc nghiệm, những việc mỗi bên làm tốt và không làm tốt

    3. Ba loại câu hỏi (choice · score · noul) và cấu trúc yêu cầu /v1/systemone

    4. Gọi từ Spring: gọi API Jev bằng RestClient và tạo các lựa chọn bằng enum Java để chuyển đổi phản hồi một cách an toàn về kiểu dữ liệu

    5. Trình diễn so sánh: phân tích cùng một bài đánh giá phim lần lượt bằng entity() và Jev để so sánh tốc độ, lỗi định dạng, độ tin cậy và tính nhất quán

    Tài liệu được cập nhật cùng nhau

    • Mã ví dụ Phần 4 (ch4): thêm 2 API phân tích bài đánh giá (/api/movies/review/llm, /api/movies/review/jev) và JevClient

    • Slide bài giảng bổ sung và tài liệu giảng dạy

    • Kịch bản kiểm thử so sánh: review-compare.sh dành cho macOS, review-compare.ps1 dành cho Windows

    Điểm cần biết trước

    • Jev không phải là một tính năng của Spring AI mà là một dịch vụ bên ngoài riêng biệt do TypeSafe AI cung cấp. Trong bài giảng, chúng ta cũng gọi trực tiếp bằng RestClient, chứ không phải ChatClient của Spring AI.

    • Hiện tại Jev đang ở giai đoạn truy cập sớm, vì vậy việc cấp khóa API có thể phải chờ. Trong mã ví dụ, tính năng Jev mặc định bị tắt (jev.enabled=false), nên ngay cả khi không có khóa, bạn vẫn có thể tiếp tục các bài thực hành như bình thường. Nếu chưa có khóa, hãy xem phần trình diễn trong video và tập trung theo dõi các khái niệm cùng mã nguồn.

    • Vì đây là dịch vụ mới ra mắt nên giá cả hoặc API có thể thay đổi sau này. Nếu có thay đổi, chúng tôi sẽ thông báo lại qua tin tức mới.

    📌 Truy cập khóa học ngay: https://inf.run/VVpnV

    Nếu trong quá trình học các bài giảng được bổ sung, bạn có bất kỳ thắc mắc nào hoặc gặp khó khăn khi thực hành, hãy thoải mái để lại bình luận. Chúng tôi sẽ tiếp tục bổ sung những nội dung có thể áp dụng ngay vào công việc thực tế.

    0
  • kenneth님의 프로필 이미지

    Xin chào, tôi là Lee Do-won.


    "Tôi đã thử tạo pipeline Jenkins, nhưng mới chỉ nghe qua khái niệm ArgoCD hoặc GitOps."

    "Tôi bối rối không biết nên thiết kế việc triển khai như thế nào cho từng môi trường dev, staging và production."


    Dành cho những ai đang trăn trở như vậy, chúng tôi đã mở khóa học 「Học GitOps CI/CD thực chiến với Jenkins và ArgoCD」 trên Inflearn.


    Khóa học này khác biệt ở những điểm sau


    • Cùng tìm hiểu cả GitOps dựa trên ArgoCD, vượt ra ngoài CI/CD truyền thống dựa trên Jenkins.

    • Trực tiếp so sánh phương thức Push (Jenkins) và phương thức Pull (ArgoCD) trên cùng một cụm Kubernetes. Khi ai đó thay đổi thủ công bằng kubectl, bạn sẽ tận mắt thấy một bên giữ nguyên thay đổi còn bên kia tự động khôi phục, đồng thời trực tiếp cảm nhận sự khác biệt trong cách rollback và kiểm tra lịch sử triển khai.

    • Kết hợp hai phương thức để xây dựng từ đầu đến cuối một quy trình triển khai kết hợp, trong đó dev·staging sử dụng Jenkins Push, còn production sử dụng ArgoCD Pull (phê duyệt Sync thủ công).

    • Thực hành các kỹ thuật triển khai cốt lõi cần thiết cho vận hành, từ Canary, Blue-Green, RBAC, quy trình phê duyệt, ứng phó sự cố cho đến tự động rollback.


    Môi trường thực hành

    Chỉ cần Docker Desktop là có thể thực hiện. Tương thích với cả Windows và macOS, không cần tài khoản đám mây như AWS hay phát sinh chi phí riêng.


    Khóa học này phù hợp với những ai


    • Kỹ sư backend và hạ tầng đã từng sử dụng Jenkins nhưng chưa từng làm quen với ArgoCD/GitOps

    • Những người muốn chuyển việc triển khai Kubernetes từ thao tác thủ công bằng kubectl apply sang tự động hóa

    • Nhân sự DevOps·SRE quan tâm đến các yêu cầu vận hành như phê duyệt triển khai, rollback và theo dõi kiểm toán


    Tổng thời lượng học khoảng 10–11 giờ, đồng thời cung cấp tài liệu thực hành và hướng dẫn khắc phục sự cố.


    👉 Xem khóa học: https://inf.run/dEjZE

    Nếu có điều gì thắc mắc, hãy thoải mái để lại trong phần bình luận hoặc mục Q&A của khóa học nhé!

    0
  • kenneth님의 프로필 이미지

    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.

    0
  • kenneth님의 프로필 이미지

    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.

    3
  • kenneth님의 프로필 이미지

    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!

    5
  • kenneth님의 프로필 이미지

    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 -

    8
  • kenneth님의 프로필 이미지

    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.

    Apache Kafka

    image

    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.0

     

    Nế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 .


    1
  • kenneth님의 프로필 이미지

    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

    8

1.814.946 ₫