Categorygithub.com/sunerpy/rabbitmqpool
modulepackage
0.1.11
Repository: https://github.com/sunerpy/rabbitmqpool.git
Documentation: pkg.go.dev

# README

用于rabbitmq的连接池

fork自https://gitee.com/tym_hmm/rabbitmq-pool-go.git

一边学习一边改

  1. 已实现功能:
    • 使用function option为rabbitmq设置默认值
  2. 待实现功能:
    • 消息发送失败时存入本地文件
    • 捕获错误日志

用法

生产者

import (
    "github.com/sunerpy/rabbitmqpool"
    "sync"
    "os"
    "fmt"
)
func main(){
    var instancePoolProducer *rabbitmqpool.RabbitPool
    var testConf = rabbitmqpool.NewAmqpConf("192.1.1.210", 5672, "root", "root", rabbitmqpool.WithRabbitType(1))
	var wg sync.WaitGroup
	var err error
	go rabbitmqpool.TmpMain()
	localFile := "localdata.txt"
	instancePoolProducer, err = rabbitmqpool.InitPool(testConf)
	if err != nil || instancePoolProducer == nil {
		fmt.Println("Here get pool failed...start save to file...")
		os.Exit(1)
	}
	for i := 0; i < 5; i++ {
		wg.Add(1)
		go func(num int) {
			defer wg.Done()
			data := rabbitmqpool.GetRabbitMqDataFormat("testChange5", rabbitmqpool.EXCHANGE_TYPE_TOPIC, "textQueue5", "", "这里是数据", localFile)
			data.Data = fmt.Sprintf("update num is %v", jsonData)
			err := instancePoolProducer.Push(data)
			if err != nil {
				fmt.Printf("err is %v", err)
			}
		}(i)
	}
	wg.Wait()
}

# Packages

No description provided by the author

# Functions

获取发送数据模板 @param exChangeName 交换机名称 @param exChangeType 交换机类型 @param queueName string 队列名称 @param route string 路由 @param data string 发送的数据 */.
获取发送数据模板 过期设置(死信队列) @param exChangeName 交换机名称 @param exChangeType 交换机类型 @param queueName string 队列名称 @param route string 路由 @param data string 发送的数据 */.
@param host string: rabbitmq主机ip @param port int: rabbitmq主机端口 @param user string: 连接用户名 @param password string: 连接密码 @param args string: 可额外设置vhost */.
No description provided by the author
No description provided by the author
初始化消费者 */.
初始化生产者 */.
No description provided by the author
No description provided by the author
No description provided by the author
随机数 @param int length 生成长度 */.
No description provided by the author
No description provided by the author
@param i int: 指rabbitmq类型,1为生产者,2为消费者 */.
No description provided by the author

# Constants

rabbitmq tcp 最大连接数.
最大消费channel数(一般指消费者).
消费者断线重连最大次数.
生产者断线重连最大次数.
最大重发次数.
最大重试时间机数.
最小重试时间机数.
Direct:定向,把消息交给符合指定routing key 的队列.
Fanout:广播,将消息交给所有绑定到交换机的队列.
Topic:通配符,把消息交给符合routing pattern(路由模式) 的队列.
轮循-连接池负载算法.
消费者.
生产者.
信道创建失败.
交换机/队列/绑定失败.
连接失败.
获取信道失败.
消息推送失败.
发送超过最大重试次数.
超过最大重试次数.

# Variables

No description provided by the author
No description provided by the author

# Structs

No description provided by the author
消费者注册接收数据 */.
rabbitMq 通用队列 */.
连接负载处理 */.
发送数据 消息发送 */.
错误返回 */.
No description provided by the author
No description provided by the author

# Interfaces

No description provided by the author
No description provided by the author