消息队列
文章平均质量分 77
消息队列技术研究
DreamCatcher
热爱编程,不仅仅是为了工作,而是爱好。
热爱生活,不仅仅是为了生存,而是责任。
热爱运动,不仅仅是为了健康,而是习惯。
沉迷太极拳,每天早上5点50起床,练四十分钟拳,四年内风雨无阻。
岁月流程,不再年轻,在这浮躁的社会和超强的生活压力下,希望在编程的道路上,能够坚持下去。
展开
-
理解队列
1、基本含义队列其实可以通过数组来实现的。可以用一个抽象数组来描述一个队列。为了实现队列功能,可以给数组添加两个指针变量:一个称为头指针,它指示当前消费的位置,例如图中0-2三个元素已经消费出队列了。每次消费一个元素,头指针的值加1。一个称为尾指针,表示下一个入队列的位置,每次生产者生产一个元素或是入队列一个元素,尾指针就会加1队列的特性要求,尾指针的值必须大于等于头指针的值,如果两种是相等的 ,表示当前队列为空。如果两者不相等,那么尾指针的值减去头指针的值的差值就是当前队列中未消费原创 2021-05-18 12:58:04 · 122 阅读 · 0 评论 -
NSQD中的log 设计
1、标准包的中log结构体:// A Logger represents an active logging object that generates lines of// output to an io.Writer. Each logging operation makes a single call to// the Writer's Write method. A Logger can be used simultaneously from// multiple gorouti原创 2021-03-02 17:44:10 · 271 阅读 · 0 评论 -
go-options-一个命令行标识、配置文件值解析库
1、go-options 简介一个用于解析命令行标志、配置文件和默认结构体值去设置配置值的类库。项目地址:github.com/mreiferson/go-options主要目的:将命令行flags(FlagSet)或者一个外部解析的配置文件(可以是一个map)设置的 配置值 解析设置到一个结构体struts的成员 上options支持的结构体的成员tag:"flag","cfg"和“deprecated”值按以下优先级解析(从高到低):1. Command line flag2原创 2021-02-26 18:42:01 · 649 阅读 · 0 评论 -
TOML简介及NSQD对TOML的使用
1、什么是TOML?TOML的全称是 [Tom's Obvious Minimal Language],其作者是 GitHub联合创始人 。TOML的目标是成为一个极简的配置文件格式,被设计成可以无歧义地被映射为哈希表,从而被多种语言解析。官网地址:https://toml.io/en/2、官方示例# This is a TOML document.title = "TOML Example"[owner]name = "Tom Preston-Werner"dob =原创 2021-02-25 18:42:00 · 1501 阅读 · 0 评论 -
NSQD对sync.Once的使用及sync.Once探索
1、NSQD 启动过程中对sync.Once的使用源码路径:apps/nsqd/main.go核心结构体:type program struct { once sync.Once nsqd *nsqd.NSQD}在使用Once的时候,可以尝试采用此种结构,将值和Once封装成一个新的数据机构,提供只初始化一次或只结束一次的值。例如,nsqd中,在Stop()方法里面,利用sync.Once保证,对nsqd执行且仅仅执行一次退出操作func (p *progr原创 2021-02-25 00:00:33 · 160 阅读 · 0 评论 -
NSQD启动分析以及对flag包的使用
1、NSQD启动入口源码位置:apps/nsqd/main.go核心结构体:type program struct { once sync.Once nsqd *nsqd.NSQD }核心依赖包:github.com/judwhite/go-svc/svc核心方法:Init,Start,Stop核心依赖包:svc/svc_other.go启动入口方法:Run,会依次调用Service接口的以下方法:Init->Start->Stoppr.原创 2021-02-22 23:40:56 · 246 阅读 · 2 评论 -
NSQ简介及连接模式
1、 NSQ简介NSQ是一个实时的分布式的消息处理平台。主要有以下特点:支持分布式的拓扑结构,没有SPOF(单点故障) 支持横向水平扩展(没有 brokers 等任何集中式代理) 性能优越,基于推送的低延迟的消息传递模式 结合负载均衡和多路广播类型的消息路由 擅长面向流(streaming)(高吞吐量)和 任务(Job)导向的工作负载 主要是基于内存的(超过高水位线消息将透明的存储到磁盘中) 运行时的服务发现 传输层安全性(TLS) 数据格式不可知 很少的依赖项,容易部署,具有原创 2021-02-20 22:29:10 · 3472 阅读 · 0 评论