Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrorCodeNoMessage = 100 ErrorMsgNoMessage = "no message" ErrorCodeInvalidMessageFile = 101 ErrorMsgInvalidMessageFile = "invalid message file content" ErrCodeQueueLimit = 102 ErrorMsgQueueLimit = "queue capacity is limit" ErrCodeMsgSizeTooLarge = 103 ErrMsgMsgSizeTooLarge = "message size too large" )
Functions ¶
This section is empty.
Types ¶
type MessageConsumer ¶
消费的消息格式
func MessageStorageToMessageConsumer ¶
func MessageStorageToMessageConsumer(msg *MessageStorage) *MessageConsumer
type MessagePublisher ¶
type MessagePublisher struct { Num uint64 Size uint32 //等于后续字段长度之和 TopicSize uint16 Topic []byte Data []byte Crc uint32 }
发布的消息格式
type MessageQuery ¶
type MessageQuery struct { Topic string MessagePos uint64 Limit int Result chan *MessageQueryResult //查询结果 }
对存储引擎的查询请求抽象
type MessageQueryResult ¶
type MessageQueryResult struct { Message *MessageConsumer Error error }
type MessageStorage ¶
type MessageStorage struct { Num uint64 Size uint32 //等于Data和crc的长度之和 Data []byte Crc uint32 TailSize uint32 //等于size, 放在每一条消息记录的末尾,方便对消息文件进行从尾部开始的回溯 }
数据文件单条记录,数据文件由n条MessageStorage组成,其中整数字段均为BigEndian
func MessagePublisherToMessageStorage ¶
func MessagePublisherToMessageStorage(msg *MessagePublisher) *MessageStorage
func NewMessageStorage ¶
func NewMessageStorage(data []byte, messageNum uint64) *MessageStorage
type Storage ¶
type Storage interface { SaveMessage(msg *MessageStorage) error QueryMessage(query *MessageQuery) }
Click to show internal directories.
Click to hide internal directories.