Documentation
¶
Overview ¶
Package mq provides SDK-free adapters for propagating SaaS tenant metadata through NATS, RabbitMQ, and Kafka message headers.
Package mq 提供与 SDK 无关的适配器,用于通过 NATS、RabbitMQ 和 Kafka 消息头传播 SaaS 租户元数据。
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInvalidHeaders reports a nil message-header wrapper. ErrInvalidHeaders = errors.New("saas/rpc/mq: invalid headers") )
Functions ¶
This section is empty.
Types ¶
type KafkaCarrier ¶
type KafkaCarrier struct {
// contains filtered or unexported fields
}
KafkaCarrier adapts KafkaHeaders to rpc.Carrier.
func NewKafkaCarrier ¶
func NewKafkaCarrier(headers KafkaHeaders) (KafkaCarrier, error)
NewKafkaCarrier creates an rpc.Carrier backed by Kafka record headers.
func (KafkaCarrier) Get ¶
func (carrier KafkaCarrier) Get(key string) (string, bool)
Get converts a Kafka byte header to a string. Missing and empty byte headers are treated as absent tenant metadata.
func (KafkaCarrier) Set ¶
func (carrier KafkaCarrier) Set(key string, value string)
Set converts a tenant metadata string to a Kafka byte header.
type KafkaHeaders ¶
type KafkaHeaders interface {
GetBytes(key string) ([]byte, bool)
SetBytes(key string, value []byte)
}
KafkaHeaders is the host-owned Kafka record-header wrapper used by KafkaCarrier. It intentionally exposes byte values because Kafka headers are binary metadata.
type NATSCarrier ¶
type NATSCarrier struct {
// contains filtered or unexported fields
}
NATSCarrier adapts NATSHeaders to rpc.Carrier.
func NewNATSCarrier ¶
func NewNATSCarrier(headers NATSHeaders) (NATSCarrier, error)
NewNATSCarrier creates an rpc.Carrier backed by NATS message headers.
func (NATSCarrier) Get ¶
func (carrier NATSCarrier) Get(key string) (string, bool)
Get returns a NATS header value. NATS cannot distinguish an empty value from an absent value through this minimal interface, so empty values are treated as absent.
func (NATSCarrier) Set ¶
func (carrier NATSCarrier) Set(key string, value string)
Set stores a tenant metadata value in the NATS headers.
type NATSHeaders ¶
NATSHeaders is the host-owned NATS message-header wrapper used by NATSCarrier. It intentionally mirrors only the string operations required for tenant metadata propagation.
type RabbitMQCarrier ¶
type RabbitMQCarrier struct {
// contains filtered or unexported fields
}
RabbitMQCarrier adapts RabbitMQHeaders to rpc.Carrier.
func NewRabbitMQCarrier ¶
func NewRabbitMQCarrier(headers RabbitMQHeaders) (RabbitMQCarrier, error)
NewRabbitMQCarrier creates an rpc.Carrier backed by RabbitMQ message headers.
func (RabbitMQCarrier) Get ¶
func (carrier RabbitMQCarrier) Get(key string) (string, bool)
Get returns a RabbitMQ string header using the host wrapper's presence contract.
func (RabbitMQCarrier) Set ¶
func (carrier RabbitMQCarrier) Set(key string, value string)
Set stores a tenant metadata value in the RabbitMQ headers.