前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊聊canal-go的position

聊聊canal-go的position

作者头像
code4it
发布2020-07-07 16:07:33
3390
发布2020-07-07 16:07:33
举报
文章被收录于专栏:码匠的流水账码匠的流水账

本文主要研究一下canal-go的position

Position

canal-go-v1.0.7/protocol/Position/Position.go

代码语言:javascript
复制
package position

type Position interface {
}
  • Position.go定义了一个Position接口

MetaqPosition

canal-go-v1.0.7/protocol/Position/metaq_position.go

代码语言:javascript
复制
package position

type MetaqPosition struct {
    Topic    string
    MsgNewId string
    Offset   int64
}
  • MetaqPosition定义了Topic、MsgNewId、Offset属性

TimePosition

canal-go-v1.0.7/protocol/Position/time_position.go

代码语言:javascript
复制
package position

type TimePosition struct {
    Timestamp int64
}

func NewTimePosition(timestamp int64) *TimePosition {
    tstamp := &TimePosition{Timestamp: timestamp}
    return tstamp
}
  • TimePosition定义了Timestamp属性,NewTimePosition方法实例化TimePosition

EntryPosition

canal-go-v1.0.7/protocol/Position/entry_position.go

代码语言:javascript
复制
package position

const (
    EVENTIDENTITY_SEGMENT = 3
    EVENTIDENTITY_SPLIT   = 5
)

type EntryPosition struct {
    TimePosition
    Included    bool
    JournalName string
    Position    int64
    ServerId    int64
}

func NewEntryPosition(journalName string, position int64, timestamp int64, serverId int64, Included bool) *EntryPosition {
    entryPosition := &EntryPosition{TimePosition{timestamp}, false, journalName, position, serverId}
    return entryPosition
}
  • EntryPosition定义了TimePosition、Included、JournalName、Position、ServerId属性;NewEntryPosition方法实例一个EntryPosition

LogPosition

go-projects/canal-go-v1.0.7/protocol/Position/log_position.go

代码语言:javascript
复制
package position

type LogPosition struct {
    Identity LogIdentity
    Postion  EntryPosition
}
  • LogPosition定义了LogIdentity、EntryPosition属性

小结

canal-go定义了Position、MetaqPosition、TimePosition、EntryPosition、LogPosition

doc

  • Position
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码匠的流水账 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Position
  • MetaqPosition
  • TimePosition
  • EntryPosition
  • LogPosition
  • 小结
  • doc
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档