一、环境准备

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

image.png
image.png


一曲广陵散
76 声望22 粉丝

柴米油盐酱醋茶