问题标签 [rawrabbit]

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 回答
190 浏览

c# - RawRabbit 的正确命名空间和程序集是什么?

尝试使用 RawRabbit。我使用 PM 安装了 RawRabbit 和 RawRabbit.Next 文档建议如下:

然而,没有一个命名空间使它可编译。应该安装哪个组件?

0 投票
1 回答
9402 浏览

c# - .NET Core 微服务使用 RabbitMQ

我计划在一个项目中使用微服务架构。.NET Core选择的Docker技术栈是RabbitMQ一个简单的服务总线,它应该能够部署在Linux.

假设我有一个Payment服务和一个Order服务,我希望这些服务中的每一个都公开REST端点。正因为如此,我想到了将这两个服务作为.NET Core Web APIs.

但问题是使用RabbitMQ. 每当我得到一个新的order,我想使用发布一个事件RabbitMQ,然后在Payment服务中监听该事件以执行某些操作(数据库更新)。但由于这些是Web APIs,我认为不可能像我描述的那样监听事件。(我觉得我可能不得不使用控制台应用程序之类的东西来订阅事件。)

考虑到系统的可扩展性和可扩展性,我想找到最可行的方法来使用最佳实践来实现这一目标。

0 投票
1 回答
1090 浏览

c# - RawRabbit 使用或不使用 INamingConvention 设置队列名称

在 C# 中使用 RawRabbit 时如何指定队列名称?我在任何地方都找不到如何做到这一点的例子。如果实施 INamingConvention 是唯一的方法,那么如何使用 INamingConvention 呢?

我尝试按照以下方式指定队列名称,但它仍然使用 _appname 作为后缀。

0 投票
1 回答
892 浏览

c# - RawRabbit 序列化问题

我正在尝试使用 RawRabbit 实现图像处理服务,该服务将接收要处理的图像并将提取的信息返回到不同的队列。删除所有不必要的代码后,我意识到我面临的问题是当我从订阅委托中调用发布时。

有谁知道我做错了什么?我的应用程序基于.Net core 2.0

以下是我订阅的方法。

这是我创建 BusClient 的方法;

```

问题是当调用 PublishAsync 时我总是得到以下异常。

System.Runtime.Serialization.SerializationException: Serializing delegates is not supported on this platform. at System.MulticastDelegate.GetObjectData(SerializationInfo info, StreamingContext context) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeISerializable(JsonWriter writer, ISerializable value, JsonISerializableContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at RawRabbit.Context.Provider.MessageContextProviderBase1.SerializeContext(TMessageContext messageContext) at RawRabbit.Context.Provider.MessageContextProviderBase1.GetMessageContext(Guid& globalMessageId) at RawRabbit.Operations.Publisher1.PublishAsync[TMessage](TMessage message, Guid globalMessageId, PublishConfiguration config) at RawRabbit.Common.BaseBusClient1.PublishAsync[T](T message, Guid globalMessageId, Action1 configuration) at RawRabbit.vNext.Disposable.BusClient1.PublishAsync[T](T message, Guid globalMessageId, Action`1 configuration) at SimpleID.FaceProcessing.Services.Implementation.RawRabbitQueueService.b__11_0(String msgStr, AdvancedMessageContext context)

0 投票
0 回答
126 浏览

rawrabbit - 如何取消订阅 Rawrabbit?

我使用这种方式开始订阅消息:

...但是我如何“取消订阅”和/或断开连接?我在 Windows 服务中有代码,我希望能够在关闭 Windows 服务时取消订阅/断开连接。

0 投票
3 回答
893 浏览

c# - RawRabbit.Pipe 命名空间

我正在尝试掌握 ServiceBus 架构,并且正在使用 RawRabbit 1.10.4。为此,我正在学习使用 RawRabbit 的在线课程。在命令处理程序的注册中,创建了以下扩展方法,其中调用了 Methoc ctx.UseConsumerConfiguration。

Extension 方法应该在 RawRabbit.Pipe 命名空间中,该命名空间不可用。我需要安装什么 nuget 包以获取扩展方法,或者在 1.10.4 版中是否删除了此扩展方法/命名空间?

0 投票
1 回答
553 浏览

asp.net-core - 使用 RawRabbit 发布消息时如何指定队列名称

到目前为止,我发现可以RawRabbit.Enrichers.Attributes使用属性安装包和配置消息类:

并设置

但我宁愿指定队列名称以及发布命令以使其更灵活:

RawRabbit 2.0.0-rc5 可以吗?

0 投票
1 回答
339 浏览

rabbitmq - 通过“RawRabbit”进行两个控制台应用程序通信

我需要帮助,我有两个通过RawRabbit.

我首先编写了一个控制台应用程序并添加了PublisherReceiver以查看连接是否正在发生:

这行得通。

现在我想将接收器移动到另一个控制台应用程序,当我这样做时,它不起作用。

0 投票
0 回答
1415 浏览

c# - RawRabbit 订阅者在 ASP.NET Core 中不起作用

我在 asp.net 核心中创建了一个 RestApi,并且在我的一项服务中,我使用 RawRabbit 向 RabbitMQ 发布了一条消息。话虽如此,当我评论订阅者部分时,我看到消息已在 RabbitMQ 控制面板中发布,消费者数量为 0,当我添加订阅者部分时,消费者的数量变为 1,并且消息正在被消费,所以那里控制面板中没有消息,但奇怪的是订阅者中的所有代码(在这种情况下它只是一个日志)都没有运行。

发布者部分:

订阅者部分:

我将订阅者注册为单例服务,我Run()在 Startup.cs 中调用它的方法

这是服务启动时的日志:

以下是发布消息时的日志:

0 投票
2 回答
636 浏览

asp.net-core-2.2 - .NET Core 2.2 RawRabbit 序列化器/依赖注入问题

我有基于 .NET Core 2.2 的微服务。我使用 RawRabbit(版本 2.0.0-beta9)作为服务总线。与它一起安装了以下软件包:

这是我的控制器的样子:

当代码尝试执行以下操作时会出现问题:

我得到的例外是:

MissingMethodException:找不到方法:'无效 Newtonsoft.Json.JsonSerializer.set_TypeNameAssemblyFormat(System.Runtime.Serialization.Formatters.FormatterAssemblyStyle)'。RawRabbit.DependencyInjection.RawRabbitDependencyRegisterExtension+<>c.b__0_1(IDependencyResolver 解析器)

....... 更多文字.......

RawRabbit.BusClient.InvokeAsync(Action pipeCfg, Action contextCfg, CancellationToken token) Actio.Api.Controllers.ActivitiesController.Post(CreateActivity model) in ActivitiesController.cs

然后是我的 Post 操作的代码,如上所示。

以下操作按预期工作:

我认为这是因为此操作不使用IBusClient. 所以,问题必须出在 RawRabbit 上。我用谷歌搜索了这个问题,并在 RawRabbit GitHub repo 上发现了一个问题。解决方案是在 RawRabbit 上升级到更新版本。所以,我尝试升级到2.0.0-rc1但我遇到了一些语法错误。我定义了一个Extensions定义以下方法的类:

问题似乎与UseConsumerConfiguration. 错误说:

ISubscribe Context 不包含 UseConsumerConfiguration 的定义

附加信息:我正在关注 Packt Publishing 的 .NET 微服务课程。使用完全相同的包,这段代码似乎对他们来说工作得很好。