54 lines
2.2 KiB
Go
54 lines
2.2 KiB
Go
// Copyright 2018 The Go Cloud Development Kit Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// https://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
// Package rabbitpubsub provides an pubsub implementation for RabbitMQ.
|
|
// Use OpenTopic to construct a *pubsub.Topic, and/or OpenSubscription
|
|
// to construct a *pubsub.Subscription.
|
|
//
|
|
// RabbitMQ follows the AMQP specification, which uses different terminology
|
|
// than the Go CDK Pub/Sub.
|
|
//
|
|
// A Pub/Sub topic is an AMQP exchange. The exchange kind should be "fanout" to match
|
|
// the Pub/Sub model, although publishing will work with any kind of exchange.
|
|
//
|
|
// A Pub/Sub subscription is an AMQP queue. The queue should be bound to the exchange
|
|
// that is the topic of the subscription. See the package example for details.
|
|
//
|
|
// # URLs
|
|
//
|
|
// For pubsub.OpenTopic and pubsub.OpenSubscription, rabbitpubsub registers
|
|
// for the scheme "rabbit".
|
|
// The default URL opener will connect to a default server based on the
|
|
// environment variable "RABBIT_SERVER_URL".
|
|
// To customize the URL opener, or for more details on the URL format,
|
|
// see URLOpener.
|
|
// See https://gocloud.dev/concepts/urls/ for background information.
|
|
//
|
|
// # Message Delivery Semantics
|
|
//
|
|
// RabbitMQ supports at-least-once semantics; applications must
|
|
// call Message.Ack after processing a message, or it will be redelivered.
|
|
// See https://godoc.org/gocloud.dev/pubsub#hdr-At_most_once_and_At_least_once_Delivery
|
|
// for more background.
|
|
//
|
|
// # As
|
|
//
|
|
// rabbitpubsub exposes the following types for As:
|
|
// - Topic: *amqp.Connection
|
|
// - Subscription: *amqp.Connection
|
|
// - Message.BeforeSend: *amqp.Publishing
|
|
// - Message.AfterSend: None
|
|
// - Message: amqp.Delivery
|
|
// - Error: *amqp.Error and MultiError
|
|
package rabbitpubsub // import "gocloud.dev/pubsub/rabbitpubsub"
|