Giới thiệu
Fountain là gì?
Fountain là một framework và thư viện Go toàn diện để xây dựng các hệ thống phân tán và microservice ở cấp độ production. Nó cung cấp một lớp trừu tượng thống nhất trên nhiều giao thức, cơ sở dữ liệu, message broker và dịch vụ đám mây, giúp bạn xây dựng, chạy và giám sát các ứng dụng đa giao thức với lượng mã soạn sẵn tối thiểu. Một instance Fountain duy nhất điều phối server, tác vụ nền (job), tác vụ định kỳ (cron) và các invoker chạy một lần dưới cùng một vòng đời nhất quán.
Khi nào nên dùng
Hãy chọn Fountain khi một ứng dụng cần kết hợp nhiều mối quan tâm sau đây trong cùng một runtime gắn kết:
- Server đa giao thức — HTTP (qua Fiber), gRPC, TCP, UDP và QUIC được phục vụ trong cùng một ứng dụng.
- Quản lý vòng đời thống nhất — server, tác vụ nền, tác vụ định kỳ và các invoker chạy một lần.
- Cơ sở dữ liệu và cache — PostgreSQL, MySQL, MongoDB, Redis, Cassandra, Elasticsearch và S3, cùng với cache trong bộ nhớ, LRU, LFU và ARC.
- Message broker — NATS, RabbitMQ, Kafka và MQTT.
- Service discovery — Consul, ETCD và Kubernetes.
- Khả năng quan sát — tracing với OpenTelemetry, metrics với Prometheus và logging có cấu trúc.
- Mẫu hình phục hồi — circuit breaker, giới hạn tốc độ (rate limiting), thử lại (retry) và backoff.
- Xác thực — JWT, OAuth2, Firebase và social auth.
Cách tổ chức tài liệu
- Bắt đầu — cài đặt Fountain và khởi chạy service đầu tiên của bạn.
- Khái niệm cốt lõi — vòng đời, các runnable và mô hình controller.
- Xây dựng một Service — lắp ráp một service thực tế từ các khối xây dựng của Fountain.
- CLI ftkit — tạo khung và kiểm tra các service tuân thủ chuẩn.
- Tài liệu API — tài liệu tham khảo theo cấp độ package cho framework và các thư viện của nó.
Module & phiên bản
Fountain được phát hành dưới dạng module Go gitlab.soludian.com/soludian/fountain và yêu cầu Go 1.25.4 (theo go.mod). Đây là phần mềm độc quyền, được cấp phép bởi Soludian Technology Solution Co., Ltd.