Triển Khai Laravel Scout + Meilisearch v1.11+ Trên Docker Compose & Tối Ưu Horizon
MeiliSizer Blueprint Summary: Laravel Scout tích hợp sẵn driver chính chủ cho cả Meilisearch và Typesense. Thiết lập chuẩn hàng đợi Horizon, gom lô 1.000 bản ghi và khóa giới hạn RAM container.
Tránh Bẫy Gửi Hàng Ngàn Task Lẻ Tẻ Khi Lưu Model Eloquent (MeiliSizer Guide)
Nếu để mặc định, một vòng lặp cập nhật 5.000 dòng Eloquent sẽ bắn 5.000 HTTP task nhỏ lẻ sang Meilisearch gây nghẽn hàng đợi đánh chỉ mục. Chỉ cần bật SCOUT_QUEUE=true trên nhánh Horizon riêng và gom nhóm bằng chunk 1.000 bản ghi, hệ thống sẽ gộp 5.000 thao tác thành 5 lần ghi LMDB siêu tốc trong chưa đầy 1 giây.
File docker-compose.yml Chuẩn Production Cho VPS KVM 16GB
# docker-compose.yml — Dịch vụ Meilisearch v1.11 cô lập tài nguyên
services:
meilisearch:
image: getmeili/meilisearch:v1.11
restart: unless-stopped
environment:
MEILI_ENV: production
MEILI_MASTER_KEY: ${MEILISEARCH_KEY}
MEILI_MAX_INDEXING_MEMORY: 4Gb
MEILI_NO_ANALYTICS: "true"
volumes:
- meili_lmdb:/meili_data
ports:
- "127.0.0.1:7700:7700"
deploy:
resources:
limits:
memory: 10G
Bảng Định Cỡ RAM MeiliSizer Cho LARAVEL-SCOUT-DOCKER
| Quy Mô Danh Mục | Tập Làm Việc Nóng | Đỉnh RAM Dự Phòng | Cấu Hình Khớp Tải |
|---|---|---|---|
| SaaS Khởi đầu (250K dòng Eloquent) | 0.8 GB Chỉ mục | VPS 8GB Gộp App + Search | Hostinger KVM 2 ($5.99/tháng) |
| SaaS Tăng trưởng (1M dòng / 5M Query) | 2.2 GB Chỉ mục | VPS 16GB DDR5 Độc lập | Hostinger KVM 4 ($10.49/tháng) |
| Hệ thống Đa vùng (5M+ bản ghi) | 9.5 GB Chỉ mục | Mạng riêng VPC 3.5GHz+ | Vultr High Frequency 16GB–32GB |
Checklist Triển Khai MeiliSizer: LARAVEL-SCOUT-DOCKER
- Luôn chạy lệnh php artisan scout:sync-index-settings trong script CI/CD trước khi đẩy dữ liệu mới.
- Bật SCOUT_QUEUE=true và cấu hình kích thước lô scout.chunk.searchable từ 500 đến 1.000 bản ghi.
- Định nghĩa hàm toSearchableArray() gọn sạch để không đẩy nhầm cột mật khẩu hay chuỗi JSON thừa vào chỉ mục.
- Khóa cổng 7700 ở địa chỉ nội bộ 127.0.0.1 hoặc mạng riêng VPC; chỉ mở truy cập ngoài qua Reverse Proxy có HTTPS.
Hostinger KVM DDR5 NVMe VPS (Docker / Meilisearch 1-Click) — MeiliSizer Pick
Giảm tới 67% + Giảm thêm 20% đối tác • 8GB–32GB RAM DDR5 + NVMe Gen4 tối ưu LMDB Mmap
Vultr High Frequency 3.5GHz+ NVMe (Singapore / Tokyo / US / EU) — MeiliSizer Option
Xung nhịp 3.5GHz+ xử lý Roaring Bitmap & cây tiền tố cực nhanh • 32 cụm máy chủ toàn cầu (có Singapore/Tokyo)
Câu Hỏi Kỹ Thuật MeiliSizer: LARAVEL-SCOUT-DOCKER
- Nên gọi tìm kiếm từ phía Backend Laravel hay gọi thẳng từ trình duyệt Vue/React?
-
Gọi qua Laravel Livewire/Inertia rất tiện khi cần ghép quyền Eloquent phức tạp; còn gọi thẳng từ trình duyệt qua Tenant Token mang lại trải nghiệm gõ phím dưới 15ms mượt nhất.
- Mỗi lô scout:import nên đặt bao nhiêu bản ghi là tối ưu?
-
Với mỗi bản ghi khoảng 1.5 KB, mức chunk từ 1.000 đến 2.500 dòng giúp tính năng auto-batching của Meilisearch đạt tốc độ nạp ~15.000 bản ghi/giây trên ổ NVMe.