代码拉取完成,页面将自动刷新
1、rabbitmq 使用同一交换机,队列, routekey, 监听队列后通过消息路由routePath 进行区分任务逻辑
一个消息队列可根据自定义路由处响应不通事件。 支持不同队列不同路由处理, 基于rabbitmq连接池
2、兼容rabbitmq链接池自定义 VirtualHosts
生产项目已使用,每日处理上亿数据,每秒可处理1000+队列消息,rabbitmq集群及服务应用未出现较高压力
go get -u gitee.com/tym_hmm/rabbitmq-pool-router-path-go
var wg sync.WaitGroup
exchangeName := "test-data-center-exchange-name"
exchangeType := RabbitmqPool.EXCHANGE_TYPE_TOPIC
queueName := "test-data-center-queue-name"
routeKey := "test-data"
routePath := "/test/a"
wg.Add(2)
go func() {
defer wg.Done()
data:="这是一个数据test/a"
//使用默认VirtualHosts 发送
//product:=RabbitmqRoute.NewProductClient(host, port, user, pwd)
//使用自定义VirtualHosts 发送
product:=RabbitmqRoute.NewProductClientVirtualHosts(host, port, user, pwd, "/temptest1")
err:=product.Publish(exchangeName, exchangeType, queueName, routeKey, routePath, data)
if err !=nil{
fmt.Println(err)
}
}()
go func() {
defer wg.Done()
routePatsh := "/testaa"
datas:="这是一个数据test"
//使用默认VirtualHosts 发送
//products:=RabbitmqRoute.NewProductClient(host, port, user, pwd)
//使用自定义VirtualHosts 发送
products:=RabbitmqRoute.NewProductClientVirtualHosts(host, port, user, pwd, "/temptest1")
errs:=products.Publish(exchangeName, exchangeType, queueName, routeKey, routePatsh, datas)
if errs !=nil{
fmt.Println(errs)
}
}()
wg.Wait()
consumer := RabbitmqRoute.NewTask(host, port, user, pwd)
//设置加载的节点信息(暂时只支持单节点加入)
consumer.SetHandleNode(&RabbitmqRoute.NodeInfo{
NodeName: "dataCenter",
ExchangeName: "test-data-center-exchange-name",
ExchangeType: RabbitmqPool.EXCHANGE_TYPE_TOPIC,
Route: "test-data",
QueueName: "test-data-center-queue-name",
IsTry: false,
MaxReTry: 1,
})
//注册加载的路由
consumer.RouteRegister(func(engine *RabbitmqRoute.TaskEngine) {
//fmt.Println(engine)
engine.AddRoute("/test", func(c *RabbitmqRoute.TaskContext) {
fmt.Println(c.Request.Data)
//c.Request.Data
})
engine.AddRoute("/test/a", func(c *RabbitmqRoute.TaskContext) {
fmt.Println(c.Request.Data)
})
})
err := consumer.Enter()
if err != nil {
fmt.Println(err)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型