Skip to content

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

Xem thêm