美文网首页技术文章
Go消息中间件Nsq系列(二)------Nsq目录结构

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

作者: Yangwenliu | 来源:发表于2019-06-27 21:19 被阅读0次

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

    • 1.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脚本
    ```
    

    相关文章

      网友评论

        本文标题:Go消息中间件Nsq系列(二)------Nsq目录结构

        本文链接:https://www.haomeiwen.com/subject/fodkcctx.html