Apache.NMS.AMQP
概述
该项目的目的是将 .NET 消息服务 API (NMS) 与 高级消息队列协议 (AMQP) 1.0 标准线路协议相结合。历史上,Apache 社区创建了 NMS API,它为各种消息传递系统提供了与供应商无关的 .NET 接口。
NMS API 允许使用 C#、VB 或任何其他 .NET 语言编写 .NET 应用程序,同时使用单个 API 连接到任意数量的消息传递提供商。高级消息队列协议 (AMQP) 是一种开放且标准化的互联网协议,用于在应用程序或组织之间可靠地传递消息。
在 AMQP 成为标准之前,组织使用专有的线路协议连接他们的系统,这会导致供应商锁定和在与外部组织集成时出现集成问题。
实现供应商独立性和大规模采用技术的关键是将开源 API 和标准线路协议结合起来,而这正是该项目的核心所在。以下是 NMS 中 AMQP 1.0 支持如何帮助 .NET 社区
- 更多选择:随着越来越多的消息代理和服务实现 AMQP 1.0 标准线路,.NET 开发人员和架构师将拥有更多消息传递技术选择。
- 无迁移风险:由于 AMQP 1.0 是一种线路标准,您不会遇到在不同实现之间切换时遇到的问题。
- 创新:竞争是技术创新的关键组成部分。直接竞争的消息传递实现,以及无缝可插拔性,迫使供应商进行创新和差异化。
下载
请参见此处了解 下载
配置
请参见此处了解 配置 详细信息
贡献
如果您是 .NET 开发人员,并且不想被锁定在消息传递实现中,那么请参与该项目。您将在这里找到开源代码库,并请提供评论并进行自己的增强。
从 git 获取源代码 https://github.com/apache/activemq-nms-amqp
总体架构
Apache-NMS-AMQP 应该将熟悉的 NMS 概念桥接到 AMQP 协议概念,如文档 amqp-bindmap-jms-v1.0-wd09.pdf 中所述。因此,一般来说,实现 Apache.NMS 接口的大多数顶级类(Connection、Session、MessageProducer 等)创建、管理和销毁 amqpnetlite 等效对象(Connection、Session、Link 等)。
AMQP1.0 协议引擎 AmqpNetLite
Apache-NMS-AMQP 使用 AmqpNetLite 作为底层 AMQP 1.0 传输协议引擎。