Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Consumer ¶
type Consumer interface { // Consume 获取单条信息 Consume(ctx context.Context) (*Message, error) // ConsumeChan 从返回的channel中获取mq中的消息 ConsumeChan(ctx context.Context) (<-chan *Message, error) // Close 用于释放资源,多次调用返回的error与第一次调用返回的error相同 Close() error }
Consumer 是消费者的抽象,用于从指定Topic接收/消费消息,可以被多个协程并发访问
type MQ ¶
type MQ interface { // CreateTopic 用于创建topic并使用partitions指定分区数。分区从0开始编号,例如分区数为4,那么分区号就是0-3 CreateTopic(ctx context.Context, topic string, partitions int) error // DeleteTopics 用于删除一个或多个topic DeleteTopics(ctx context.Context, topics ...string) error // Producer 用于创建某个topic的生产者 Producer(topic string) (Producer, error) // Consumer 用于创建某个topic的消费者并使用groupID指定消费者所属消费组 Consumer(topic string, groupID string) (Consumer, error) // Close 用于关闭消息队列,释放所有建立的Producer和Consumer资源,多次调用返回的error与第一次调用返回的error相同 // 返回的error为由MQ抽象创建的Consumer和Producer的Close方法返回的error拼接而成 Close() error }
MQ 是消息队列的抽象用于创建Topic、生产者及消费者,MQ可以被多个协程并发访问
type Message ¶
type Message struct { // 消息本体,存储业务消息 Value []byte // 对标kafka中的key,用于分区的。可以省略 Key []byte // 对标kafka的header,用于传递一些自定义的元数据。 Header Header // 消息主题 Topic string // 分区ID Partition int64 // 偏移量 Offset int64 }
Message 是消息队列中传递的消息封装
type Producer ¶
type Producer interface { // Produce 不指定分区发送消息,发送消息时,消息所在分区不确定 Produce(ctx context.Context, m *Message) (*ProducerResult, error) // ProduceWithPartition 指定分区发送消息 ProduceWithPartition(ctx context.Context, m *Message, partition int) (*ProducerResult, error) // Close 用于释放资源,多次调用返回的error与第一次调用返回的error相同 Close() error }
Producer 是生产者抽象,用于向指定Topic发送/生产消息,可以被多个协程并发访问
type ProducerResult ¶
type ProducerResult struct{}
Click to show internal directories.
Click to hide internal directories.