问题标签 [easynetq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
673 浏览

ninject - 使用 Ninject 作为 EasyNetQ 的 IoC

我在我的项目中使用 EasyNetQ 库,我想使用 Ninject 作为 EasyNetQ 组件的 IoC 容器。

我创建了一个自定义记录器,以便从 EasyNetQ 记录任何内容:

然后在我的主要功能中使用 Ninject 扩展:

但我得到以下异常:

我以错误的方式使用这个包吗?有什么解决办法吗?

谢谢!

0 投票
1 回答
692 浏览

node.js - RabbitMQ、EasyNetQ 与 NodeJS?

我试图了解整合这些技术的合理性。我将如何跨 RabbitMQ 将 NodeJS(目前使用 amqplib,但可以更改)集成到 EasyNetQ?

我有它的工作,除了 EasyNetQ 期待一个对象(我认为)和 Node/amqplib 只能发送字符串。

C#代码:

节点代码:

结果:

有没有办法通过总线发送对象?你如何整合这两者?

0 投票
1 回答
1023 浏览

node.js - RabbitMQ,EasyNetQ 与 NodeJS (amqplib) - 订阅

我已经问过这个关于从 amqplib 发布的问题 --> EasyNetQ,并在 EasyNetQ 的作者的帮助下得到了帮助。

现在,我很难走另一条路。

它确实短暂地“工作”了,但后来我回去清理了我创建的所有队列,现在 - 它不起作用(从 amqplib 发布到 ENQ 仍然有效,但 ENQ 到 amqplib 没有)。

如果我有这个代码:

我需要在下面的Node/amqplib中插入什么来订阅/消费它?

更新

如果我有 EasyNetQ 首先创建队列(它将发布到),然后删除节点中的“assertQueue”调用(因此它不会破坏队列),然后遵循命名约定 - 它可以工作。当然,这不是一个真正的解决方案,但也许它会帮助某人指出一个解决方案?

更新#2

好吧,显然我需要将队列绑定到交换机。这是新的工作代码:

我不清楚的一件事是我将绑定上的模式设置为“#”。它有效,但我之所以这么说是因为我看到 ENQ 使用它,而其他值似乎不起作用,所以......

0 投票
1 回答
920 浏览

rabbitmq - 当机器非常活跃时,RabbitMQ / EasyNetQ 会断开连接?

我是 RabbitMQ / EasyNetQ 的新手,正在努力更好地理解我正在观察的行为。我们已经看到,当我们运行 RabbitMQ 的服务器繁忙时,所有 EasyNetQ 连接都会被丢弃。

这是在所有客户端上同时生成的异常:

System.Exception:无法连接到代理:“XXXXXX.domain.com”,端口:5672 VHost:“XXXX”。ExceptionMessage:'指定的端点都不可到达'

当服务器不再忙时,EasyNetQ 会自动重新连接,但我想知道 RabbitMQ/EasyNetQ 在机器忙时断开连接是否是典型的?(或者如果我应该调查我的服务器的性能问题。)

(PS:忙,我只是指从源代码管理更新一个大型项目,重新部署后重新启动一个大型 ASP.NET 应用程序或对大量数据运行 CPU 密集型计算。)。

0 投票
1 回答
852 浏览

rabbitmq - EasyNetQ - 消息传递顺序

来自RabbitMQ - 消息传递顺序

AMQP 0-9-1 核心规范的第 4.7 节解释了保证排序的条件:在一个通道中发布的消息,通过一个交换和一个队列以及一个传出通道将按照它们发送的顺序被接收。自 2.7.0 版以来,RabbitMQ 提供了更强的保证。

这适用于 EasyNetQ 吗?我原以为它会保持不变,但我有时(但并非总是)会看到不同的行为。

如果消费者是同步的(还不是我的情况;我有锁定但它在“如果”之后开始,在这种情况下总是错误的),我应该相信消息按照发布的顺序被消费吗?(相同类型的消息,相同的来源,到达相同的目的地)或者 EasyNetQ 内部是否还有其他元素在起作用,我应该知道哪些不保留消息传递顺序?

0 投票
1 回答
324 浏览

c# - EasyNetQ rabbitMq更新版本Json报错

我正在使用 EasyNetQ v0.27.1.216 和 Newtonsoft.Json v4.5.11 和 RabbitMq.Client v3.2.1 我更新,以解决连接问题,现在我有 EasyNetQ v0.33.1.276,Newtonsoft.Json v6.0.3 和RabbitMq.Client v3.3.2

在一切正常之前,但自从更新以来,当我尝试发布某些对象时出现错误。

"Exception":"System.AggregateException: 发生一个或多个错误。---> Newtonsoft.Json.JsonSerializationException: 解析 JSON 'System.Linq.Enumerable+WhereSelectEnumerableIterator 2[[System.Linq.IGrouping2[[Object1, Object2],[Object3, Object4]],Object5],[Object3,Object6]],Object5'。路径 'Object3.$type',第 1 行,位置 464。---> Newtonsoft.Json.JsonSerializationException: 找不到类型...

它继续这样持续了 3 页的单词。我可以发布所有内容,但我必须更改所有名称...

不知道该怎么办...

0 投票
1 回答
2896 浏览

.net - Vagrant 上的 RabbitMQ:可以远程登录到端口 5672,但无法连接到 Rabbit

我在 Vagrant 盒子上运行 RabbitMQ(使用 VirtualBox)。我在公共网络上分配了一个 IP。

现在,在另一台机器上,我希望使用 EasyNetQ 通过 AMQP 进行连接。尝试时,我收到此错误:

现在,如果我尝试通过 5672 端口(从运行 .NET 代码的同一台机器)远程登录到该 IP,我可以正常连接。

EasyNetQ 无法连接的原因可能是什么?

0 投票
1 回答
1020 浏览

c# - 使用单个 IBus 的多个队列

我正在尝试使用 RabbitMQ 和 EasyNetQ 使用多个队列(在我的情况下为四个)来实现优先级消息。

我知道该IBus实例应该在整个应用程序生命周期中保持活动状态。此外,阻止 RabbitMQ 在给定队列上发送更多消息的唯一方法是处理IBususing Dispose.

鉴于这两个相互矛盾的因素,我应该如何构建它?每个队列一个IBus实例,如果更重要的队列上的消息被发送处理(然后重新创建)不太重要的消息?

0 投票
1 回答
591 浏览

c# - 是否可以更改easynetq中的默认交换

我目前在同时运行多个环境时遇到了麻烦easynetq

当我在我的环境中发布消息时,该消息也会在我的环境dev中被拾取。stagingacceptance

解决这个问题的方法是使用高级总线为每个环境创建一个交换,例如

IBus但是,我现在不知道如何使它成为我解析接口时将使用的默认交换。

可以这样做还是我必须走只使用的路线IAdvancedBus

0 投票
1 回答
1476 浏览

c# - Disconnecting in a publish subscribe situation with easynetq

Currently I'm building some software with Easynetq (a .net lib ontop of rabbitmq). This works great except for 1 thing.

We have a publish subscribe setup. A server pushes messages to a client that can or cannot be connected. In a unwanted scenario, the client could loose its connection. When the application closes you will do an unsubscribe so then the subscription is gone. But lets say the network connection is down. Is there any way to ensure that those messages are not processed? Or can we purge the messages on the OnConnect event?