技术文章

Go消息中间件Nsq系列(二)------Nsq目录结构

2019-06-27  本文已影响0人  Yangwenliu

上一篇: Go消息中间件Nsq系列(一)------初识Nsq

1.1 首先了解一下tree命令 查看使用指南, 主要功能是: 创建文件列表,将所有文件以树的形式列出来

mac下安装brew install tree

` tree ../nsq -L 2` //查看nsq项目结构
```bash 
    ├── CODE_OF_CONDUCT.md
    ├── CONTRIBUTING.md 
    ├── ChangeLog.md    #更新日志
    ├── Dockerfile      #镜像构建
    ├── Gopkg.lock
    ├── Gopkg.toml
    ├── LICENSE
    ├── Makefile    # 编译指令集
    ├── README.md
    ├── Study.md
    ├── apps    # nsq所有项目
    │   ├── nsq_stat # 节点数据状态
    │   ├── nsq_tail  #消费数据打印到控制台
    │   ├── nsq_to_file  # 消费数据到文件
    │   ├── nsq_to_http #  消费数据由http方式发送出去
    │   ├── nsq_to_nsq  # 消费数据然后在由其他生产者生产
    │   ├── nsqadmin  # 用于实时查看集群的统计数据(并且执行各种各样的管理任务)。
    │   ├── nsqd    # 接收消息、分发消息到消费者客户端
    │   ├── nsqlookupd # 管理拓扑信息并提供最终一致性的发现服务。 
    │   └── to_nsq
    ├── bench # 批量测试脚本
    │   ├── bench.py
    │   ├── bench_channels
    │   ├── bench_reader
    │   ├── bench_writer
    │   └── requirements.txt
    ├── bench.sh # 批量测试脚本
    ├── contrib # 配置说明
    │   ├── nsq.spec # rpm建包脚本
    │   ├── nsqadmin.cfg.example
    │   ├── nsqd.cfg.example
    │   └── nsqlookupd.cfg.example
    ├── coverage.sh # 覆盖率测试
    ├── dist.sh
    ├── fmt.sh
    ├── go.mod # go module
    ├── go.sum
    ├── internal # 内部实现代码,internal对外部不可见
    │   ├── app # 浮点数组 字符串数组工具类
    │   ├── auth # 权限处理
    │   ├── clusterinfo # 集群监控信息, 比如当前版本号,消费者,生产者节点信息操作处理等
    │   ├── dirlock # flock 文件锁类似
    │   ├── http_api  # http客户端封装
    │   ├── lg # 日志库封装
    │   ├── pqueue # 最小堆实现的优先级队列
    │   ├── protocol #系统中任何协议的基本行为
    │   ├── quantile #位数操作
    │   ├── statsd # 统计
    │   ├── stringy #数组去重,合, 格式化时间
    │   ├── test # 测试 工具类
    │   ├── util #waitgroup, 唯一随机数生成
    │   ├── version #版本常量
    │   └── writers # 输出流封装
    ├── nsqadmin  # nsqadmin实现
    │   ├── README.md
    │   ├── bindata.go # go-bind自动生成
    │   ├── context.go # 上下文
    │   ├── gulp # 前端自动构建工具
    │   ├── gulpfile.js # 前端构建脚本
    │   ├── http.go # http api服务
    │   ├── http_test.go # 测试
    │   ├── logger.go # 日志
    │   ├── notify.go # admin操作提醒
    │   ├── nsqadmin.go # 主程序
    │   ├── nsqadmin_test.go 
    │   ├── options.go # 配置对应
    │   ├── package-lock.json
    │   ├── package.json # 前端配置信息
    │   ├── static
    │   └── test
    ├── nsqd # 实现
    │   ├── README.md
    │   ├── backend_queue.go #后端队列接口定义
    │   ├── buffer_pool.go # sync.pool 实现
    │   ├── channel.go # channel 实现
    │   ├── channel_test.go
    │   ├── client_v2.go # 客户端一些操作实现
    │   ├── context.go # 上下文
    │   ├── dqname.go # 获取存储结构名称
    │   ├── dqname_windows.go # 兼容windows文件名 用;号
    │   ├── dummy_backend_queue.go # 假实现
    │   ├── guid.go # 全局唯一id生成参考noeqd和snowflake
    │   ├── guid_test.go
    │   ├── http.go # http api服务
    │   ├── http_test.go
    │   ├── in_flight_pqueue.go # 队列
    │   ├── in_flight_pqueue_test.go
    │   ├── logger.go # 日志
    │   ├── lookup.go # lookup 连接操作
    │   ├── lookup_peer.go # lookup 连接操作
    │   ├── message.go # nsq 消息结构
    │   ├── nsqd.go # 主程序
    │   ├── nsqd_test.go
    │   ├── options.go # 配置
    │   ├── protocol_v2.go # nsqd协议处理
    │   ├── protocol_v2_test.go
    │   ├── stats.go # 统计
    │   ├── stats_test.go
    │   ├── statsd.go # 统计进程
    │   ├── tcp.go # tcp 协议
    │   ├── test
    │   ├── topic.go # 主题
    │   └── topic_test.go
    ├── nsqlookupd # nsqlookupd 实现
    │   ├── README.md
    │   ├── client_v1.go # 客户端封装
    │   ├── context.go # 上下文
    │   ├── http.go # http api服务
    │   ├── http_test.go
    │   ├── logger.go
    │   ├── lookup_protocol_v1.go # lookup协议
    │   ├── lookup_protocol_v1_test.go
    │   ├── nsqlookupd.go # 主程序
    │   ├── nsqlookupd_test.go
    │   ├── options.go # 配置
    │   ├── registration_db.go # 服务发现数据库管理
    │   ├── registration_db_test.go
    │   └── tcp.go # tcp协议
    ├── test.sh # 测试脚本
    └── travis.sh # travis脚本
```
上一篇下一篇

猜你喜欢

热点阅读