nsq源码分析(1):代码结构
nsq项目介绍
github项目地址:nsq
NSQ是由3个进程组成的: nsqd:接收消息、分发消息到消费者客户端的进程 nsqlookupd: 管理拓扑信息并提供最终一致性的发现服务。 nsqadmin:用于实时查看集群的统计数据(并且执行各种各样的管理任务)。
代码目录结构
git clone https://github
.com/nsqio/nsq
.git
cd nsq
git checkout v1
.0.0-compat
mkdir -p src/github
.com/nsqio
cd src/github
.com/nsqio
ln -s ../../../../nsq .
source $ tree nsq -L
1
nsq
├── apps
# 所有组件的main入口目录
│ ├── nsq_pubsub
│ ├── nsq_stat
│ ├── nsq_tail
│ ├── nsq_to_file
│ ├── nsq_to_http
│ ├── nsq_to_nsq
│ ├── nsqadmin
# nsqadmin组件入口
│ ├── nsqd
# nsqd组件入口
│ ├── nsqlookupd
# nsqlookup组件入口
│ └── to_nsq
├── bench
# 批量测试工具
│ ├── bench
.py
│ ├── bench_channels
#
│ ├── bench_reader
# 消息的消费者
│ ├── bench_writer
# 消息的生产者
├── contrib
│ ├── nsq
.spec # 可根据该文件生成nsq的rpm包
│ ├── nsqadmin
.cfg.example # nsqadmin配置文件举例
│ ├── nsqd
.cfg.example # nsqd配置文件举例
│ └── nsqlookupd
.cfg.example # nsqlookup配置文件举例
├── internal
# nsq的基础库
├── nsqadmin
# web组件
├── nsqd
# 消息处理组件
├── nsqlookupd
# 管理nsqd拓扑信息组件