今天主要讲的是 Lookupd数据存储方式(DB)。Lookupd主要保存三种信息,一是 NSQD 身份信息,二是 NSQD Topic 信息,三是 NSQD Topic 中 Channel 信息。
主要代码文件:
1.nsqlookupd/registration_db.go
结构体:
type PeerInfo struct { //伙伴信息(nsqd)
lastUpdate int64 //上次心跳检查时间
id string
RemoteAddress string `json:"remote_address"`
Hostname string `json:"hostname"`
BroadcastAddress string `json:"broadcast_address"`
TCPPort int `json:"tcp_port"`
HTTPPort int `json:"http_port"`
Version string `json:"version"`
}
type Producer struct { //nsqd 封装
peerInfo *PeerInfo //nsqd 信息
tombstoned bool //墓碑状态
tombstonedAt time.Time //墓碑状态开始时间
}
type RegistrationDB struct { // 注册表
sync.RWMutex
registrationMap map[Registration]ProducerMap
}
type Registration struct { //注册信息
Category string //现在主要有三种,channel,topic,及