简单易用的.NET免费开源RabbitMQ操作组件EasyNetQ

开发 前端
在现在的项目中,消息队列的使用比较的频繁,消息队列的种类也较多,如:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。

背景

在现在的项目中,消息队列的使用比较的频繁,消息队列的种类也较多,如:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。

其中RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

特性

  • 可伸缩性:集群服务
  • 消息持久化:从内存持久化消息到硬盘,再从硬盘加载到内存 

目前是.NET使用率比较高的消息队列;

好用的轮子

其中EasyNetQ是.NET上RabbitMQ的领先客户端API,在NuGet.org上有超过400万次下载。这是一个开放源代码项目。

图片图片

EasyNetQ是为了提供一个尽可能简洁的适用与RabbitMQ的.NET类库。为了实现这些目标,EasyNetQ提供一种自认为你会在.NET下使用RabbitMQ的视图。为了保持使用灵活性,简单起见,EasyNetQ强制使用了一些简单的约定。包括如下:

  • 消息用 .NET 类型表示
  • 消息通过.NET类型路由

目标

尽可能简化在.NET上使用RabbitMQ的工作。

入门

要连接到RabbitMQ代理...

var bus = RabbitHutch.CreateBus("host=localhost");

要发布消息...

bus.Publish(message);

订阅消息...

bus.Subscribe<MyMessage>("my_subscription_id", msg => Console.WriteLine(msg.Text));

远程过程调用...

var request = new TestRequestMessage {Text = "Hello from the client! "};
bus.Request<TestRequestMessage, TestResponseMessage>(request, response =>
    Console.WriteLine("Got response: '{0}'", response.Text));

RPC服务器...

bus.Respond<TestRequestMessage, TestResponseMessage>(request =>
  new TestResponseMessage{ Text = request.Text + " all done!" });

开源地址

更多功能见:https://github.com/EasyNetQ/EasyNetQ

责任编辑:武晓燕 来源: 程序员编程日记
相关推荐

2009-12-29 14:00:43

Ubuntu操作系统

2010-03-03 14:11:23

Android操作平台

2013-12-17 11:35:16

2019-07-24 14:49:48

SQL开源库BI软件

2014-04-03 09:46:39

开源软件

2023-10-26 00:30:00

Excel开源框架

2009-10-15 11:11:08

VB.NET Text

2016-09-18 18:27:21

KubernetesDocker

2015-11-10 18:04:22

FileMaker

2010-03-04 10:41:38

Android操作系统

2024-01-18 09:00:00

漏洞Docker工具

2022-05-14 23:49:32

Python数据计算技巧

2015-10-23 09:44:59

PaaS开源云应用

2023-11-28 07:40:34

开源仓库管理系统

2014-11-28 11:17:14

开源

2015-08-17 10:50:51

美团多级下拉菜单简洁

2017-04-27 10:07:52

框架设计实现

2017-04-19 10:18:57

Zephyr物联网

2016-12-06 10:23:24

.NETCore首例Office

2021-02-03 14:51:34

MySQL数据库压测工具
点赞
收藏

51CTO技术栈公众号