Service Discovery
Tổng quan
Fountain hỗ trợ đăng ký và phân giải các instance service thông qua các discovery backend có thể thay thế được dưới libs/sd.
Các backend hiện có:
fconsul— service discovery dựa trên Consul.fetcd— service discovery dựa trên etcd.fregistry— trừu tượng registry dùng chung cho các backend discovery.k8s— service discovery dựa trên Kubernetes.
Service discovery thường được kết hợp với gRPC server và client để caller có thể phân giải các instance khỏe mạnh lúc runtime.
Mẫu sử dụng
go
import (
"gitlab.soludian.com/soludian/fountain/libs/sd/fconsul"
"gitlab.soludian.com/soludian/fountain"
)
// Cài đặt Consul registry
registry := fconsul.WithConfigKey("consul").InstallFountainInstance()
// Đăng ký app instance với registry
fountain.New().
WithRegistry(registry).
WithAppInstances(grpcServer).
Serving()Cấu hình trong config.yaml:
yaml
consul:
addr: "127.0.0.1:8500"
service:
name: "my-service"
port: 9090