一、环境准备
cd ~/work/github/
git clone git@github.com:nsqio/go-nsq.git
cd nsq
go mod tidy && go mod vendor
二、本地 debug
cd /Users/yz/work/github/nsq/apps
cp -r nsqd nsqd2/
cp -r nsqd nsqd3/
本人使用的IDE 是 cursor
(vscode
) 也一样,创建 launch.json
文件
cd /Users/yz/work/github/nsq
mkdir .vscode
cd .vscode
touch launch.json
launch.json
文件内容如下
{
"version": "0.2.0",
"configurations": [
{
"name": "nsqadmin",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/apps/nsqadmin", // 指定 nsqadmin 的入口包路径
"args": [
"--lookupd-http-address=127.0.0.1:4161" // 指定 nsqlookupd 的地址
],
"env": {},
"showLog": true,
"cwd": "${workspaceFolder}",
"buildFlags": "-v" // 可选:显示构建详细信息
},
{
"name": "nsqlookupd",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "/Users/yz/work/github/nsq/apps/nsqlookupd", // 指向 nsqlookupd 的 main 包
"args": [
"--tcp-address=0.0.0.0:4160", // 监听 TCP 客户端(nsqd 注册)
// "--http-address=0.0.0.0:4161", // 监听 HTTP 客户端(nsqadmin/查询)
// "--broadcast-address=127.0.0.1", // 广播地址(重要!生产环境需设为真实IP)
// "--log-level=debug", // 开启详细日志
// "--inactive-producer-timeout=5m" // 自定义生产者超时时间
],
"env": {},
"buildFlags": "-v",
"showLog": true,
},
{
"name": "nsqd1",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "/Users/yz/work/github/nsq/apps/nsqd", // 指向 nsqlookupd 的 main 包
"args": [
"--lookupd-tcp-address=127.0.0.1:4160",
"--tcp-address=0.0.0.0:4150",
"--http-address=0.0.0.0:4151",
"--https-address=0.0.0.0:4152"
],
"env": {},
"buildFlags": "-v",
"showLog": true,
},
{
"name": "nsqd2",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "/Users/yz/work/github/nsq/apps/nsqd2", // 指向 nsqlookupd 的 main 包
"args": [
"--lookupd-tcp-address=127.0.0.1:4160",
"--tcp-address=0.0.0.0:5150",
"--http-address=0.0.0.0:5151",
"--https-address=0.0.0.0:5152"
],
"env": {},
"buildFlags": "-v",
"showLog": true,
},
{
"name": "nsqd3",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "/Users/yz/work/github/nsq/apps/nsqd3", // 指向 nsqlookupd 的 main 包
"args": [
"--lookupd-tcp-address=127.0.0.1:4160",
"--tcp-address=0.0.0.0:6150",
"--http-address=0.0.0.0:6151",
"--https-address=0.0.0.0:6152"
],
"env": {},
"buildFlags": "-v",
"showLog": true,
}
]
}
依次 debug
nsqd1/nsqd2/nsqd3/nsqlookupd/nsqadmin
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。