gorabbitmq

package module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2021 License: MIT Imports: 3 Imported by: 0

README

RabbitMQ Go API二次封装

RabbitMQ Go API 的二次封装

MIT license Go Reference

引用方式 go get github.com/ormissia/go-rabbitmq

二次封装了RabbitMQ五种模式:
  1. Simple模式,最简单的模式,一个消息只能被一个消费者消费。 应用场景: 短信,聊天

  2. Work模式,一个消息只能被一个消费者消费。 应用场景: 抢红包,和资源任务调度

  3. Publish/Subscribe发布订阅模式,消息被路由投递给多个队列,一个消息被多个消费者获取,生产端不允许指定消费。 应用场景:邮件群发,广告

  4. Routing路由模式,一个消息被多个消费者获取,并且消息的目标队列可以被生产者指定。 应用场景: 根据生产者的要求发送给特定的一个或者一批队列发送信息

  5. Topic话题模式,一个消息被多个消息获取,消息的目标queue可用BindKey以通配符。 (#:一个或多个词,*:一个词)的方式指定

Documentation

Overview

@File: rabbitmq @Date: 2021/1/27 17:30 @Author: 安红豆 @Description: 对“github.com/streadway/amqp”进行二次封装,方便调用

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RabbitMQ

type RabbitMQ struct {
	ExchangeName string //交换机名称
	QueueName    string //队列名称
	Key          string //Binding Key/Routing Key, Simple模式 几乎用不到
	MqURL        string //连接信息-amqp://账号:密码@地址:端口号/-amqp://guest:guest@127.0.0.1:5672/
	// contains filtered or unexported fields
}

RabbitMQ实例

func (*RabbitMQ) Destroy

func (r *RabbitMQ) Destroy()

断开channel和connection

type RabbitMQInterface

type RabbitMQInterface interface {
	Publish(message string) (err error)
	Consume() (consumeChan <-chan amqp.Delivery, err error)
}

定义RabbitMQ实例的接口 每种RabbitMQ实例都有发布和消费两种功能

type RabbitMQSimple

type RabbitMQSimple struct {
	*RabbitMQ
}

1 Simple模式,最简单最常用的模式 2 Work模式,一个消息只能被一个消费者消费

func NewRabbitMQSimple

func NewRabbitMQSimple(queueName, mqUrl string) (rabbitMQSimple *RabbitMQSimple, err error)

创建简单模式下的实例,只需要queueName这个参数,其中exchange是默认的,key则不需要。

func (*RabbitMQSimple) Consume

func (r *RabbitMQSimple) Consume() (consumeChan <-chan amqp.Delivery, err error)

直接模式,消费者

func (*RabbitMQSimple) Publish

func (r *RabbitMQSimple) Publish(message string) (err error)

直接模式,生产者.

type RabbitMQTopic added in v1.1.0

type RabbitMQTopic struct {
	*RabbitMQ
}

5 Topic话题模式

func NewRabbitMqTopic

func NewRabbitMqTopic(exchangeName, routingKey, mqUrl string) (rabbitMQTopic *RabbitMQTopic, err error)

获取话题模式下的rabbitmq的实例

func (*RabbitMQTopic) Consume added in v1.1.0

func (r *RabbitMQTopic) Consume() (consumeChan <-chan amqp.Delivery, err error)

topic模式。消费者。"*"表示匹配一个单词。“#”表示匹配多个单词,亦可以是0个。

func (*RabbitMQTopic) Publish added in v1.1.0

func (r *RabbitMQTopic) Publish(message string) (err error)

topic模式。生产者。

type RabbitMqRouting

type RabbitMqRouting struct {
	*RabbitMQ
}

4 Routing路由模式

func NewRabbitMqRouting

func NewRabbitMqRouting(exchangeName, routingKey, mqUrl string) (rabbitMqRouting *RabbitMqRouting, err error)

获取路由模式下的rabbitmq的实例

func (*RabbitMqRouting) Consume

func (r *RabbitMqRouting) Consume() (consumeChan <-chan amqp.Delivery, err error)

路由模式接收信息

func (*RabbitMqRouting) Publish

func (r *RabbitMqRouting) Publish(message string) (err error)

路由模式发送信息

type RabbitMqSubscription

type RabbitMqSubscription struct {
	*RabbitMQ
}

3 Publish/Subscribe发布订阅模式

func NewRabbitMqSubscription

func NewRabbitMqSubscription(exchangeName, mqUrl string) (rabbitMqSubscription *RabbitMqSubscription, err error)

获取订阅模式下的rabbitmq的实例

func (*RabbitMqSubscription) Consume

func (r *RabbitMqSubscription) Consume() (consumeChan <-chan amqp.Delivery, err error)

订阅模式消费者

func (*RabbitMqSubscription) Publish

func (r *RabbitMqSubscription) Publish(message string) (err error)

订阅模式发布消息

Directories

Path Synopsis
@File: main1 @Date: 2021/1/27 19:23 @Author: 安红豆 @Description: API的调用示例
@File: main1 @Date: 2021/1/27 19:23 @Author: 安红豆 @Description: API的调用示例

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL