logo头像

待到风起时,扬帆济沧海

后端

RabbitMQ-Exchange

交换器分类RabbitMQ的Exchange(交换器)分为四类: direct(默认) headers fanout topic 其中headers交换器允许你匹配AMQP消息的header而非路由键,除此之外headers交换器...

RabbitMQ-工作原理

工作机制在了解消息通讯之前首先要了解3个概念:生产者、消费者和代理。 生产者:消息的创建者,负责创建和推送数据到消息服务器; 消费者:消息的接收方,用于处理数据和确认消息; 代理:就是RabbitMQ本身,用于扮演“快递”的角色,本...

RabbitMQ-面试

问答 重复消息问题 生产者->服务端出现网络抖动等问题的重发(上半场): 此时重发是MQ-client发起的,消息的处理是MQ-server,为了避免重复,对每条消息MQ系统内部必须生成一个inner-msg-id,全局唯一,...

Go-log日志

日志使用o语言为我们提供了标准的log包,来跟踪日志的记录。下面我们看看日志包log的使用 1234func main() { log.Println("这是百度地址:","http://www...

Go-错误(error)处理方案

error接口error其实是一个接口,内置的,看下他的定义 12345// The error built-in interface type is the conventional interface for// represen...

Go 中 defer 与 return 之间的迷之执行顺序

执行顺序偶然间发现了一个有意思的地方:在使用defer时,匿名返回值的函数和命名返回值的函数的返回结果是不一样的。具体见如下代码: 123456789101112131415161718192021222324252627282930...

Go 中 defer坑

defer nil函数123456789func() { var run func() = nil defer run() fmt.Println("runs")}//outputruns...

Go-channel总结

channel的使用场景把channel用在数据流动的地方: 消息传递、消息过滤 信号广播 事件订阅与广播 请求、响应转发 任务分发 结果汇总 并发控制 同步与异步 channel的基本操作和注意事项channel 存在3种状态 ...

Golang sync 包的相关使用方法

为什么需要锁在并发的情况下,多个线程或协程同时去修改一个变量,可能会出现如下情况: 1234567891011121314151617181920212223242526package mainimport ( "fmt" ...

Go-context详解

背景golang在1.6.2的时候还没有自己的context,在1.7的版本中就把golang.org/x/net/context包被加入到了官方的库中。golang 的 Context包,是专门用来简化对于处理单个请求的多个goro...