DotNet 的消息队列抽象
Abstraction of Message Queues for DotNet
http://netcommon.sourceforge.net/
Common.Logging 是在具体 "loggers" 之上的 抽象 (示例:log4net、Enterprise Library Logging , NLog)
是否有适用于 Message Queue 系统的类似功能? (示例:msmq、rabbitmq、DotNetMQ、ZeroMQ 等)
随机 google 搜索(似乎是一个正在积极开发的相对较新的软件包):
servicestack 创建了一个带有 RabbitMQ 适配器的通用接口
github。您可以按照此示例为其他库创建适配器。
地铁
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
交通工具
MassTransit 利用现有的消息传输,因此您需要安装支持的传输。
记忆中
内存传输包含在 MassTransit 中。不需要额外的软件。
RabbitMQ
要使用 RabbitMQ,请下载并安装适合您操作系统的版本。安装代理后,启用一些用于管理和消息跟踪的附加插件。
然后,在您的项目中安装 MassTransit.RabbitMQ
包并按照 RabbitMQ 配置指南进行操作。
Azure 服务总线
Azure Service Bus 是一个通用的、基于云的消息传递系统,用于连接任何地方的任何东西——应用程序、服务和设备——无论它们在哪里。在 Azure、本地系统或两者上连接应用 运行。您甚至可以使用服务总线将家用电器、传感器和其他设备(如平板电脑或手机)连接到中央应用程序或相互连接。
要将 Azure 服务总线与 MassTransit 结合使用,请在您的项目中安装 MassTransit.AzureServiceBus
包并按照服务总线配置指南进行操作。
====================================
NServiceBus
如果下面的 link 将来消失,请搜索“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
Apache NMS 是与不同提供商(如 ActiveMQ、MSMQ 等)的消息传递 API。
http://activemq.apache.org/nms/
Obvs project 支持多个消息队列系统,看起来设计得很好而且很灵活。
传输:ActiveMQ/RabbitMQ/NetMQ/AzureServiceBus/Kafka/EventStore
序列化:XML / JSON.Net / NetJson / ProtoBuf / MsgPack
http://netcommon.sourceforge.net/
Common.Logging 是在具体 "loggers" 之上的 抽象 (示例:log4net、Enterprise Library Logging , NLog)
是否有适用于 Message Queue 系统的类似功能? (示例:msmq、rabbitmq、DotNetMQ、ZeroMQ 等)
随机 google 搜索(似乎是一个正在积极开发的相对较新的软件包):
servicestack 创建了一个带有 RabbitMQ 适配器的通用接口 github。您可以按照此示例为其他库创建适配器。
地铁
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
交通工具 MassTransit 利用现有的消息传输,因此您需要安装支持的传输。
记忆中
内存传输包含在 MassTransit 中。不需要额外的软件。
RabbitMQ
要使用 RabbitMQ,请下载并安装适合您操作系统的版本。安装代理后,启用一些用于管理和消息跟踪的附加插件。
然后,在您的项目中安装 MassTransit.RabbitMQ
包并按照 RabbitMQ 配置指南进行操作。
Azure 服务总线
Azure Service Bus 是一个通用的、基于云的消息传递系统,用于连接任何地方的任何东西——应用程序、服务和设备——无论它们在哪里。在 Azure、本地系统或两者上连接应用 运行。您甚至可以使用服务总线将家用电器、传感器和其他设备(如平板电脑或手机)连接到中央应用程序或相互连接。
要将 Azure 服务总线与 MassTransit 结合使用,请在您的项目中安装 MassTransit.AzureServiceBus
包并按照服务总线配置指南进行操作。
====================================
NServiceBus
如果下面的 link 将来消失,请搜索“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
Apache NMS 是与不同提供商(如 ActiveMQ、MSMQ 等)的消息传递 API。 http://activemq.apache.org/nms/
Obvs project 支持多个消息队列系统,看起来设计得很好而且很灵活。
传输:ActiveMQ/RabbitMQ/NetMQ/AzureServiceBus/Kafka/EventStore 序列化:XML / JSON.Net / NetJson / ProtoBuf / MsgPack