Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrMessageSizeLimit indicate that message is rejected by server due to size limitation ErrMessageSizeLimit = errors.New("message was too large, server rejected it to avoid allocation error") )
Functions ¶
This section is empty.
Types ¶
type AckManager ¶ added in v0.18.0
type AckManager interface {
// Read an item into backlog for processing for ack
ReadItem(id int64) error
// Get current max ID from read items
GetReadLevel() int64
// Set current max ID from read items
SetReadLevel(readLevel int64)
// Mark an item as done processing, and remove from backlog
AckItem(id int64) (ackLevel int64)
// Get current max level that can safely ack
GetAckLevel() int64
// Set current max level that can safely ack
SetAckLevel(ackLevel int64)
// GetBacklogCount return the of items that are waiting for ack
GetBacklogCount() int64
}
AckManager convert out of order acks into ackLevel movement.
func NewAckManager ¶ added in v0.18.0
func NewAckManager(logger log.Logger) AckManager
NewAckManager returns a AckManager without monitoring the itemIDs continousness. For example, our internal matching task queue doesn't guarantee it.
func NewContinuousAckManager ¶ added in v0.18.0
func NewContinuousAckManager(logger log.Logger) AckManager
NewContinuousAckManager returns a ContinuousAckManager it will emit error logs for itemIDs being incontinuous This is useful for some message queue system that guarantees continuousness that we want to monitor it's behaving correctly
type Client ¶
type Client interface {
NewConsumer(appName, consumerName string) (Consumer, error)
NewProducer(appName string) (Producer, error)
}
Client is the interface used to abstract out interaction with messaging system for replication
type CloseableProducer ¶ added in v0.9.3
CloseableProducer is a Producer that can be closed
type Consumer ¶ added in v0.4.0
type Consumer interface {
// Start starts the consumer
Start() error
// Stop stops the consumer
Stop()
// Messages return the message channel for this consumer
Messages() <-chan Message
}
Consumer is the unified interface for both internal and external kafka clients
type Message ¶ added in v0.4.0
type Message interface {
// Value is a mutable reference to the message's value
Value() []byte
// Partition is the ID of the partition from which the message was read.
Partition() int32
// Offset is the message's offset.
Offset() int64
// Ack marks the message as successfully processed.
Ack() error
// Nack marks the message processing as failed and the message will be retried or sent to DLQ.
Nack() error
}
Message is the unified interface for a Kafka message
type Producer ¶
Producer is the interface used to send replication tasks to other clusters through replicator
func NewMetricProducer ¶ added in v0.5.0
NewMetricProducer creates a new instance of producer that emits metrics
func NewNoopProducer ¶ added in v0.15.0
func NewNoopProducer() Producer
NewNoopProducer returns a no-op message producer