Phần 2: Cài Đặt Môi Trường Từ Số 0 (Docker, OSM, Golang)

Phần 2: Cài Đặt Môi Trường Từ Số 0 (Docker, OSM, Golang)

← Chương trước: Phần 1: Trực Quan Hóa Thuật Toán Cốt Lõi (A*, Dijkstra) | Mục lục Series | Chương tiếp theo: Phần 3: Chỉ Mục Không Gian (Uber H3, PostGIS & Redis GEO) → Answer-first: Xây dựng môi trường định tuyến chuẩn production bao gồm trích xuất dữ liệu bản đồ OpenStreetMap (.pbf), biên dịch đồ thị bằng GraphHopper (Java 21) trong Docker, và kết nối qua Golang API Gateway với gRPC client hiệu năng cao. ...

14 tháng 6, 2026 · 9 phút · Lê Tuấn Anh
GraphHopper distance matrix production API guide with OpenStreetMap and Docker

GraphHopper Distance Matrix: API & OSM Hosting Guide

GraphHopper Distance Matrix: API & OSM Hosting Guide Answer-first: GraphHopper distance matrix is a high-performance open-source routing engine endpoint that calculates travel times and road distances for N×M origin-destination coordinate pairs using OpenStreetMap data. By utilizing Contraction Hierarchies and memory-mapped graphs, self-hosted GraphHopper evaluates a 100×100 matrix in under 52ms, providing 99.7% cost savings over commercial APIs with runtime vehicle customization. How to Call the GraphHopper Matrix API (/matrix Endpoint) Running GraphHopper distance matrix in production requires configuring Docker deployment, the /matrix API endpoint, Custom Models for vehicle-specific routing (truck/motorcycle), H3-based Redis caching, and evaluating performance tradeoffs against OSRM, Valhalla, and Google Maps (for an in-depth analysis of routing engine selection, see our OSRM vs GraphHopper Architecture Comparison). ...

11 tháng 6, 2026 · 17 phút · Lê Tuấn Anh
Triển Khai GraphHopper trên Kubernetes với OSM

Tự Tổ Chức Triển Khai GraphHopper trên Kubernetes với Dữ liệu OSM

🇬🇧 Read the English version of this article on tanhdev.com Answer-first: Triển khai GraphHopper trên Kubernetes chuẩn production yêu cầu cấu hình StatefulSet với SSD PVC lưu trữ OSM PBF và CH cache, cấp phát 768MB JVM Heap cùng 4GB off-heap Direct Memory (mmap), thiết lập Readiness Probe 600s bảo vệ giai đoạn CH pre-processing, và áp dụng chiến lược Blue-Green để cập nhật bản đồ không downtime. GraphHopper là một cỗ máy định tuyến (routing engine) mã nguồn mở mạnh mẽ — hỗ trợ thuật toán Rút Ngọn Thứ Bậc (Contraction Hierarchies - CH) cho các câu truy vấn phản hồi dưới 1 mili-giây, hồ sơ phương tiện tùy chỉnh (custom vehicle profiles), quy định cấm rẽ (turn restrictions) và tích hợp dữ liệu bản đồ OpenStreetMap. Thách thức lớn nhất đối với các đội ngũ kỹ thuật không phải là thuật toán, mà là việc vận hành và triển khai trên Kubernetes: nạp tập tin OSM PBF dung lượng lớn, tối ưu hóa bộ nhớ JVM, xử lý giai đoạn tiền xử lý đồ thị CH (CH pre-processing), và cập nhật dữ liệu bản đồ mà không gây gián đoạn hệ thống (zero-downtime). ...

1 tháng 6, 2026 · 13 phút · Lê Tuấn Anh