NSQ 源码分析之Lookupd--DB

本文深入探讨了NSQ Lookupd的数据存储方式,重点介绍DB如何维护NSQD的身份信息、Topic信息及Topic中的Channel信息。通过分析registration_db.go文件,理解其数据结构、查找匹配功能以及增删改查操作,为后续的lookup_protocal_v1协议分析奠定基础。
摘要由CSDN通过智能技术生成

今天主要讲的是 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,及
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值