Message Broker
Tổng quan
Fountain tích hợp message broker dưới libs/brokers cho publish/subscribe và pipeline hướng sự kiện.
Các broker hiện có:
fmqtt— MQTT broker client.providers/fnat— NATS.providers/fka— Apache Kafka.providers/fmqp— RabbitMQ (AMQP).providers/fedis— Redis Streams / Pub-Sub.providers/sse— Server-Sent Events.providers/sns— AWS SNS.providers/sqs— AWS SQS.
Pipeline & Pub/Sub
Package libs/brokers cung cấp các trừu tượng bậc cao hơn:
pipeline/middleware— middleware cho pipeline (retry, throttle, circuit breaker, deduplication…).pipeline/plugin— plugin tín hiệu cho pipeline.pubsub/gochannel— pub/sub trong bộ nhớ dùng Go channel.pubsub/sync— pub/sub đồng bộ.subscriber— helper cho subscriber.
Mẫu sử dụng
go
import (
"gitlab.soludian.com/soludian/fountain/libs/brokers/providers/fnat"
)
// Kết nối NATS từ config key "nats.default"
client := fnat.WithConfigKey("nats.default").InstallFountainInstance()
// Publish một message
client.Publish(ctx, "topic.orders", payload)
// Subscribe nhận message
client.Subscribe(ctx, "topic.orders", func(msg *brokers.Message) error {
// xử lý message
return nil
})Xem thêm
- Tham chiếu:
fmqtt,providers/fnat,providers/fka,providers/fmqp - Tham chiếu index
- Ví dụ