simple amqp client by golang build on top github.com/streadway/amqp
- support graceful shutdown
- support direct produce message
- support exchange produce message
- test failed case
- support cluster nodes
- autoreconnect connection and channel
- refactor consumer use client same producer
- support data type only json
go get -u github.com/devit-tel/gogo-amqp
- create consumer and register queue handler
- if handler return err gogo-amqp will be send nck and requeue
consumer, err := gogo_amqp.NewConsumer("localhost", "/", "guest", "guest", 5672)
defer consumer.Close()
if err != nil {
panic(err)
}
consumer.RegisterQueueHandler("test_queue", func(data []byte) error {
// implement here
return nil
})
consumer.RegisterQueueHandler("test_queue_x", func(data []byte) error {
// implement here
return nil
})
consumer.Start()
- create producer and produce message to exchange / direct queue
producer, err := gogo_amqp.NewProducer("localhost", "/", "guest", "guest", 5672)
if err !=nil {
panic(err)
}
// produce message to exchange
err = producer.ProduceExchange("test_exchange", jsonData)
if err != nil {
panic(err)
}
// produce message to direct queue
err = producer.ProduceQueue("test_queue", jsonData)
if err != nil {
panic(err)
}