Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Abstraction of Message Queues for DotNet [closed]

http://netcommon.sourceforge.net/

Common.Logging is an abstraction over top the concrete "loggers" (examples : log4net, Enterprise Library Logging, NLog)

Is there anything like that available for Message Queue systems? (examples : msmq, rabbitmq, DotNetMQ, ZeroMQ , etc, etc)

like image 201
granadaCoder Avatar asked May 05 '16 19:05

granadaCoder


4 Answers

MassTransit

https://masstransit-project.com/usage/transports/

MassTransit support multiple transports, including:

RabbitMQ
Azure Service Bus
ActiveMQ
Amazon SQS
In Memory

http://docs.masstransit-project.com/en/latest/installation/prerequisites.html

Transports MassTransit leverages existing message transports, so you will need to have a supported transport installed.

In Memory

The in memory transport is included with MassTransit. No additional software is required.

RabbitMQ

To use RabbitMQ, download and install the version appropriate for your operating system. Once the broker is installed, enable some additional plug-ins for management and message tracking.

Then, install the MassTransit.RabbitMQ package in your project and follow the RabbitMQ configuration guide.

Azure Service Bus

Azure Service Bus is a generic, cloud-based messaging system for connecting just about anything—applications, services, and devices—wherever they are. Connect apps running on Azure, on-premises systems, or both. You can even use Service Bus to connect household appliances, sensors, and other devices like tablets or phones to a central application or to each other.

To use Azure Service Bus with MassTransit, install the MassTransit.AzureServiceBus package in your project and follow the Service Bus configuration guide.

====================================

NServiceBus

It the below link dies in the future, search for "NServiceBus transports"

https://docs.particular.net/transports/types

NServiceBus transports can be divided into several categories.

Federated transports
Federated transports are inherently distributed. Each endpoint instance may connect to a different node of the queueing technology. Messages are routed transparently between the nodes but the physical routing layer needs to contain information as to which node particular endpoint is connected to.

Federated transports include:

Learning
MSMQ
Broker transports
Broker transports are inherently centralized. Even if there are multiple servers, they act as a single logical instance that hosts all the queues (and/or topics/exchanges).

Broker transports include:

Azure Service Bus
Azure Service Bus (legacy)
Azure Storage Queues
SQL Server
RabbitMQ
Unicast-only transports
Unicast-only transports do not have the notion of topics, exchanges, or similar concepts; only queues. Because of this, they allow only point-to-point communication. Sending a message to multiple receivers (e.g. publishing an event) involves of multiple transport-level sends. Unicast-only transports require subscription storage via NServiceBus persistence.

Unicast-only transports include:

Azure Storage Queues
MSMQ
SQL Server version 4 and below
Amazon SQS version 4 and below
Multicast-enabled transports
Multicast-enabled transports have some notion of topics, exchanges, or similar concepts, which allow sending a message once and having it received by multiple clients. These transports do not require subscription storage.

Multicast-enabled transports include:

Learning
Azure Service Bus
Azure Service Bus (legacy)
RabbitMQ
SQL Server version 5 and above
Amazon SQS version 5 and above
like image 151
granadaCoder Avatar answered Sep 22 '22 05:09

granadaCoder


The Obvs project supports multiple message queue systems and appears to be really well designed and flexible.

Transports: ActiveMQ / RabbitMQ / NetMQ / AzureServiceBus / Kafka / EventStore Serialization: XML / JSON.Net / NetJson / ProtoBuf / MsgPack

like image 29
Ashley van Gerven Avatar answered Sep 20 '22 05:09

Ashley van Gerven


Apache NMS is the messaging API with different providers like ActiveMQ, MSMQ etc. http://activemq.apache.org/nms/

like image 22
Oleg Oleg Avatar answered Sep 19 '22 05:09

Oleg Oleg


servicestack created a common interface with adapters to RabbitMQ github. You could follow this example to create adapters for other libraries.

like image 39
Steve Avatar answered Sep 21 '22 05:09

Steve