nsqadmin 结构体定义

type Options struct {
LogLevel string `flag:"log-level"`
LogPrefix string `flag:"log-prefix"`
Verbose bool `flag:"verbose"` // for backwards compatibility
Logger Logger
logLevel lg.LogLevel // private, not really an option HTTPAddress string `flag:"http-address"` GraphiteURL string `flag:"graphite-url"`
ProxyGraphite bool `flag:"proxy-graphite"` StatsdPrefix string `flag:"statsd-prefix"`
StatsdCounterFormat string `flag:"statsd-counter-format"`
StatsdGaugeFormat string `flag:"statsd-gauge-format"` StatsdInterval time.Duration `flag:"statsd-interval"` NSQLookupdHTTPAddresses []string `flag:"lookupd-http-address" cfg:"nsqlookupd_http_addresses"`
NSQDHTTPAddresses []string `flag:"nsqd-http-address" cfg:"nsqd_http_addresses"` HTTPClientConnectTimeout time.Duration `flag:"http-client-connect-timeout"`
HTTPClientRequestTimeout time.Duration `flag:"http-client-request-timeout"` HTTPClientTLSInsecureSkipVerify bool `flag:"http-client-tls-insecure-skip-verify"`
HTTPClientTLSRootCAFile string `flag:"http-client-tls-root-ca-file"`
HTTPClientTLSCert string `flag:"http-client-tls-cert"`
HTTPClientTLSKey string `flag:"http-client-tls-key"` AllowConfigFromCIDR string `flag:"allow-config-from-cidr"` NotificationHTTPEndpoint string `flag:"notification-http-endpoint"` AclHttpHeader string `flag:"acl-http-header"`
AdminUsers []string `flag:"admin-user" cfg:"admin_users"`
}

Options 只有一个 New 方法, 就是创建一个 NSQAdmin 对象:

func New(opts *Options) *NSQAdmin {}
type NSQAdmin struct {
sync.RWMutex
opts atomic.Value // interface 类型,实际保存的是 *Options
httpListener net.Listener
waitGroup util.WaitGroupWrapper
notifications chan *AdminAction
graphiteURL *url.URL
httpClientTLSConfig *tls.Config
}

再看看 NSQAdmin 提供了哪些方法:

// 读取 ops 的值,这里用的 atomic 来保证同步操作
func (n *NSQAdmin) getOpts() *Options {} // 存储 ops 的值
func (n *NSQAdmin) swapOpts(opts *Options) {} // 返回服务器地址,即: net.Listener.Addr()
func (n *NSQAdmin) RealHTTPAddr() *net.TCPAddr {} // 从 channel 中读取消息,转换成 json, 然后发送到 nsq 节点
func (n *NSQAdmin) handleAdminActions() {} // 退出清理操作
// 关闭 http 监听, 关闭 channel
func (n *NSQAdmin) Exit() {} // 监听端口
func (n *NSQAdmin) Main() {}

nsqadmin的更多相关文章

  1. go语言nsq源码解读二 nsqlookupd、nsqd与nsqadmin

    nsqlookupd: 官方文档解释见:http://bitly.github.io/nsq/components/nsqlookupd.html 用官方话来讲是:nsqlookupd管理拓扑信息,客 ...

  2. Nginx reverse proxy NSQAdmin

    以下配置只针对nsqadmin v1.1.0 (built w/go1.10.3)版本 ## The default server# server {    listen       80 defau ...

  3. (转)go语言nsq源码解读二 nsqlookupd、nsqd与nsqadmin

    转自:http://www.baiyuxiong.com/?p=886 ---------------------------------------------------------------- ...

  4. 深入NSQ 之旅[转载]

    介绍 NSQ是一个实时的分布式消息平台.它的设计目标是为在多台计算机上运行的松散服务提供一个现代化的基础设施骨架.这篇文章介绍了 基于go语言的NSQ的内部架构,它能够为高吞吐量的网络服务器带来 性能 ...

  5. nsq

    官网:http://nsq.io (1)描述 都是message broker,rabbitmq久经考验,nsq则是后起之秀.rabbitmq是erlang编写,nsq是golang. 安装:http ...

  6. 实时消息平台NSQ的特性

    NSQ是GO语言开发的可用于大规模系统中的实时消息服务,但是和RabbitMQ等相比,它具有什么特色,什么场景下选择NSQ呢? NSQ的自身特色很明显,最主要的优势在如下三个方面: 1,性能.在多个著 ...

  7. nsq初探

    一. 安装 参考:http://nsq.io/deployment/installing.htmlhttp://www.baiyuxiong.com/?p=873    (推荐.) 不推荐直接把官方的 ...

  8. Mac OS X 上的安装nsq并使用

    安装: brew install nsq 使用: The following steps will run a small NSQ cluster on your local machine and ...

  9. NSQ部署

    一.      简介 NSQ主要有三个主要程序和一个Web服务程序: nsqd:是守护进程,接收,缓存,并投递消息给客户端 nsqlookupd:是一个守护进程,为消费者提供运行时发现服务,来查找指定 ...

随机推荐

  1. R-----shiny包的部分解释和控件介绍

    R-----shiny包的部分解释和控件介绍 作者:周彦通.贾慧 shinyApp( ui = fixedPage( fixedPanel( top = 50, right=50, width=200 ...

  2. awk和sed截取nginx和tomcat时间段日志

    1 nginx日志截取示例 日志路径:/usr/local/nginx/logs, 截取access.log中2019年3月24日17点00~02之间的日志: 写法1: cat access.log ...

  3. 【2】学习C++之引用

    C++中的引用类似于现实生活中人们之间起昵称,昵称和本名都可以辨别人. 1.普通变量的引用: ;//a为本名 int &b=a;//b为a的昵称 其中不能光有昵称没有本名,如果只定义了引用,却 ...

  4. java程序设计习题总结

    ---恢复内容开始--- main()方法的参数名可以改变:main()方法的参数个数不可以改变. 当一个程序没有main()方法是,是可以编译通过的,但是不能给运行,因为找不到一个主函数入口. 标识 ...

  5. Centos6.8 yum安装MySQL5.6

    第一步:安装仓库wget http://repo.mysql.com//mysql57-community-release-el6-8.noarch.rpmrpm -ivh mysql-communi ...

  6. LeetCode.接雨水

    题外话:LeetCode上一个测试用例总是通不过(我在文章末贴出通不过的测试用例),给的原因是超出运行时间,我拿那个测试用例试了下2.037ms运行完.我自己强行给加了这句: && m ...

  7. 提示缺少tns_admin的解决办法

    问题:安装ZL数据安全辅助工具后,执行时出现 “未设置系统环境变量tns_admin!” 解决: 1.查找tnsnames.ora所在目录,比如这里的目录为:C:\app\H\product\11.2 ...

  8. 自己对Web标准的理解

    1.WEB标准 WEB分层: 1.结构层(HTML)   2.表现(css) 3.行为(js) web标准的优点: * 易于维护:只需更改css文件,就能改变整站的样式: * 页面响应快:HTML文档 ...

  9. EndNote中文文献导入出错和数量限制解决

    发现之前记录的存在忽略,把存在的一个重要问题遗漏了,Endnote中文文献导入无法导入,软件奔溃问题,现在在原先基础上补上(补到最后): ..一路绿色φ(>ω<*) φ(>ω< ...

  10. git pull命令的用法

    git pull用法: git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并. 一句话总结git pull和git fetch的区别: git pull = git fet ...