Danh sách bài viết trong series Học microservice cơ bản
- Bài 1: Microservices Là Gì?
- Bài 2: Chuẩn Bị Môi Trường Để Học Microservices
- Bài 3: Viết Microservice Đầu Tiên
- Bài 4: Microservices Và Monolith
- Bài 5: Giao Tiếp Giữa Microservices
- Bài 6: Giao Tiếp Nâng Cao Trong Microserivce với RabbitMQ
- Bài 7: Container Hóa Microservices Với Docker
- Bài 8: Quản Lý Nhiều Microservices Với Docker Compose
- Bài 9: Học microservices cơ bản với minikube
Bài 3: Viết Microservice Đầu Tiên: Một Ứng Dụng Nhỏ Với Node.js
Ở bài trước, bạn đã chuẩn bị xong môi trường với Ubuntu, Git, Node.js, Postman, và VS Code. Hôm nay, chúng ta sẽ cùng tạo một microservice đầu tiên – một ứng dụng nhỏ để bạn thấy microservices hoạt động ra sao. Mình sẽ hướng dẫn từng bước, từ việc viết code đến chạy và kiểm tra nó. Mình nhớ lần đầu làm microservice, mình hơi lo lắng vì không biết nó có chạy được không, nhưng khi thấy nó hoạt động, mình cảm thấy rất hào hứng. Mình sẽ cố gắng giải thích thật rõ ràng để bạn cũng có trải nghiệm tốt như vậy. Sẵn sàng chưa nào?
Bước 1: Tạo Thư Mục Và Khởi Tạo Dự Án Node.js
Trước tiên, bạn cần tạo một thư mục để chứa microservice của mình. Mở terminal trên Ubuntu (nhấn Ctrl + Alt + T
) và làm theo các bước sau:
- Tạo thư mục cho microservice và di chuyển vào đó:
mkdir my-first-microservice cd my-first-microservice
- Khởi tạo dự án Node.js:
npm init -y
Lệnh này sẽ tạo file
package.json
– đây là file quản lý thông tin dự án của bạn. Nếu bạn mở file này (dùng lệnhcat package.json
), bạn sẽ thấy nội dung giống như:{ "name": "my-first-microservice", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" } }
Bước 2: Cài Đặt Express – Thư Viện Giúp Viết API Dễ Dàng
Để tạo microservice, chúng ta sẽ dùng Express, một thư viện của Node.js giúp viết API nhanh chóng. Hãy cài Express:
- Chạy lệnh sau trong terminal:
npm install express
Sau khi cài xong, bạn sẽ thấy thư mục
node_modules
và filepackage-lock.json
xuất hiện. Đây là nơi lưu các thư viện mà dự án của bạn sử dụng.
Bước 3: Viết Code Cho Microservice Đầu Tiên
Bây giờ, bạn sẽ tạo một microservice đơn giản trả về thông điệp “Hello, Microservices!” khi ai đó truy cập vào nó. Mở VS Code trong thư mục dự án:
- Mở VS Code:
code .
- Tạo file
app.js
(nhấn chuột phải trong VS Code, chọn “New File”, đặt tênapp.js
). -
Dán đoạn code sau vào
app.js
:const express = require('express'); const app = express(); app.get('/hello', (req, res) => { res.send('Hello, Microservices!'); }); app.listen(3000, () => { console.log('Microservice chạy trên cổng 3000'); });
Giải thích code:
const express = require('express')
: Sử dụng thư viện Express.app.get('/hello', ...)
: Tạo một API endpoint, khi ai đó truy cập/hello
, trả về “Hello, Microservices!”.app.listen(3000, ...)
: Microservice chạy trên cổng 3000.
Bước 4: Chạy Microservice Và Kiểm Tra
Đã đến lúc chạy microservice của bạn! Quay lại terminal và làm theo các bước:
- Chạy microservice:
node app.js
Nếu mọi thứ đúng, bạn sẽ thấy thông báo:
Microservice chạy trên cổng 3000
- Mở Postman (hoặc trình duyệt) để kiểm tra:
- Trong Postman, tạo một request mới:
- Chọn phương thức
GET
. - Nhập URL:
http://localhost:3000/hello
. - Nhấn “Send”.
- Chọn phương thức
- Nếu thành công, bạn sẽ thấy kết quả:
Hello, Microservices!
. - Nếu dùng trình duyệt, chỉ cần mở:
http://localhost:3000/hello
.
- Trong Postman, tạo một request mới:
Nếu bạn thấy thông điệp “Hello, Microservices!”, xin chúc mừng! Bạn đã tạo thành công microservice đầu tiên. Nếu không thấy, đừng lo, mình sẽ hướng dẫn bạn xử lý lỗi ở phần sau.
Bước 5: Hiểu Cách Microservice Hoạt Động
Hãy cùng nhìn lại những gì vừa xảy ra:
- Bạn đã tạo một microservice nhỏ với Node.js và Express.
- Microservice này có một API endpoint (
/hello
) trả về thông điệp “Hello, Microservices!”. - Khi bạn gửi request (qua Postman hoặc trình duyệt), microservice nhận request, xử lý, và trả về response.
Đây là cách cơ bản mà microservices hoạt động: chúng nhận request, làm một việc cụ thể (trong trường hợp này là trả về thông điệp), và gửi response. Sau này, bạn sẽ tạo nhiều microservices và kết nối chúng với nhau.
Nhật Ký Lần Đầu: Cảm Nhận Và Lỗi Thường Gặp
Mình nhớ lần đầu chạy microservice, mình gặp vài lỗi nhỏ, và mình nghĩ bạn cũng có thể gặp. Dưới đây là một số lỗi phổ biến và cách xử lý:
- Lỗi “Cannot find module ‘express'”: Điều này có nghĩa bạn chưa cài Express. Hãy chạy lại lệnh
npm install express
. - Lỗi “Port 3000 is already in use”: Có chương trình khác đang dùng cổng 3000. Bạn có thể đổi cổng trong
app.js
(VD:app.listen(3001)
), hoặc tìm và tắt chương trình đang dùng cổng 3000:sudo lsof -i :3000 kill -9 <PID>
- Không thấy thông điệp trong Postman: Kiểm tra xem microservice đã chạy chưa (nhìn terminal), và đảm bảo URL đúng (
http://localhost:3000/hello
).
Lần đầu tiên của mình, mình quên chạy node app.js
mà đã mở Postman, nên không thấy gì cả. Sau khi kiểm tra lại, mình mới nhận ra vấn đề. Nếu bạn gặp khó khăn, cứ làm lại từng bước, hoặc hỏi mình nhé.
Kết Thúc: Bạn Đã Làm Được Một Microservice
Hôm nay, bạn đã tạo thành công microservice đầu tiên – một bước quan trọng trong hành trình học microservices. Mình biết có thể bạn cảm thấy hơi mới mẻ, nhưng đây là nền tảng để bạn đi tiếp. Ở bài sau, chúng ta sẽ so sánh sâu hơn giữa microservices và monolith qua một dự án cụ thể, để bạn hiểu rõ hơn khi nào nên dùng microservices. Hẹn gặp bạn ở bài tiếp theo nhé!