问题标签 [masstransit]

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

c# - AppHarbor MassTransit CloudAMQP 抛出异常 指定的端点均不可访问

我正在尝试从我的 AppHarbor 应用程序中将 Masstransit 与 CloudAMQP LEMUR 一起使用,但我收到了异常:

“指定的端点均不可到达”

这是 Masstransit 的配置方式:

我使用的版本是:MassTransit 2.6.3
MassTransit.RabbitMQ.2.6.3
RabbitMQ.Client.2.8.7
Magnum.2.0.1.0

我该如何解决这个错误?

谢谢

0 投票
1 回答
332 浏览

domain-driven-design - 在分布式系统中为消息提供共享和专用的程序集或库是常见的做法吗?

我正在讨论分布式域驱动设计背后的一些概念,并且正在构建概念验证。我有三个 C# 解决方案,它们在整个系统中具有特定的职责。

我的解决方案是:

  • 写入模型(从客户端接收命令并创建和发送事件)
  • 读取模型(从写入模型接收事件,创建数据库并向客户端公开 DTO 服务,可能是 2 个单独的解决方案)
  • 客户端(调用服务以获取所需数据并向写入模型发送命令)

所有三种解决方案都通过服务总线使用消息传递(命令、事件)。(在我的情况下是大众运输)。

我的主要问题是:创建带有消息的程序集并让每个解决方案都引用该程序集是常见的做法吗?

额外的功劳:在这个 POC 中,我正在做的事情有什么奇怪或有问题的吗?在创建此类系统时我应该注意的任何其他信息?

0 投票
1 回答
155 浏览

c# - AppHarbor MassTransit CloudAMQP 持续消耗 1,9kB/s

使其工作后:
AppHarbor MassTransit CloudAMQP 抛出异常 指定的端点均不可访问 现在我在 CloudAMQP 管理中看到我有 2 个连接不断消耗 1,9kB/s 和 1,4kB/s,这将很快耗尽我的 30 Mb

有没有办法解决这个问题?

0 投票
5 回答
33684 浏览

.net - NServiceBus 与 MassTransit

我正在为有关 NServiceBus 和 MassTransit 的优缺点列表而苦苦挣扎。

现在我知道这里已经有一个线程,但它并没有真正回答我的问题。

这是我到目前为止所读到的:

  1. NServiceBus,是的,它已获得许可,而且不是免费提供的。
  2. MassTransit,是的,它是开源的,但文档似乎有些欠缺。

NServiceBus 较旧,并且有更多参考。很难找到有关 MassTransit 的信息,但我很开放。但是我必须提供一个可靠的解决方案,所以我不得不问。

所以,请有这两个框架经验的人。我为什么要选择 NServiceBus?或者 我为什么要选择 MassTransit?

是性能、安全性、规模还是?

0 投票
1 回答
3959 浏览

masstransit - MassTransit 请求/响应方案中的超时发布消息

我正在尝试设置 MassTransit 请求/响应方案。问题是消息永远不会到达消费者。我在 PublishRequest 上收到“等待响应超时”错误。日志文件中没有显示其他错误。正在 msmq 中创建消息。

异常信息:

异常类型:TargetInvocationException 异常消息:调用的目标已抛出异常。在 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& bNeedSecurityCheck)在 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache,StackCrawlMark 和 stackMark)在 System.RuntimeType.CreateInstanceDefaultCtor (Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark & stackMark)
在 System.Activator.CreateInstance(Type type, Boolean nonPublic) 在 System.Activator.CreateInstance(Type type) 在 System.Web.Mvc.DefaultControllerFactory.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType)

等待响应超时,RequestId: 08cfa243-4a88-ba3a-20cf-307f54910000 at MassTransit.RequestResponse.RequestImpl 1.Wait() in d:\BuildAgent-03\work\8d1373c869590c5b\src\MassTransit\RequestResponse\RequestImpl.cs:line 124 at MassTransit.RequestResponseExtensions.PublishRequest[TRequest](IServiceBus bus, TRequest message, Action1 configureCallback) in d:\BuildAgent-03\work\8d1373c869590c5b\src\MassTransit\RequestResponseExtensions.cs:line 31 at Producer。 c:\Users\rick\Documents\Visual Studio 2012\Projects\ConsumerTest1\Producer.Website\Controllers\AccountController.cs:line 56 中的 Website.Controllers.AccountController..ctor()

生产者设置:

生产者发送消息:

消费者设置:

消费者:

留言:

我究竟做错了什么?谢谢你。

0 投票
1 回答
1166 浏览

asp.net-mvc-4 - 在 Asp.Net MVC 4 应用程序中在哪里初始化 MassTransit?

我有一个包含 3 个项目的简单解决方案:

  1. Asp.Net MVC4 Web 应用程序 - 主网站
  2. 控制台应用程序 - 任务运行器
  3. 控制台应用程序 - 任务运行器

我希望使用 MassTrasnsit 作为队列,以便网站上的操作(如发送电子邮件)不会阻止网站,而是发布到队列并由任务运行者处理。

我的问题是:我应该在哪里初始化队列、Web 应用程序、任务运行器之一或为此创建一个单独的控制台应用程序?

附言。在生产服务器上运行时,控制台应用程序将是 Windows 服务。

0 投票
2 回答
1533 浏览

rabbitmq - 使用 Autofac 进行总线配置:RabbitMQ 与 Loopback 的问题?

由于某种原因,我无法在masstransit google 群组中发帖,即使我加入了,但我被告知我无权在此群组中发帖。所以我要在这里发帖...

现在解决我的问题:

我正在使用 MassTransit v2.7.2 和 AutoFac v2.6.3。我正在尝试配置 Autofac 以扫描程序集并注册我的消费者;所有实现 IConsumer 接口的类型。这似乎有效。

当我配置总线时,我正在使用 MassTransit.AutofacIntegration 程序集和LoadFrom(...)扩展方法将容器中的消费者注册到 MassTransit。这是代码:

如果我使用环回运行上述代码

配置(注释掉rabbitmq配置),测试将通过。

如果我注释掉“环回”配置并在

配置,测试将失败。(注意:rabbitmq 队列已经启动并运行——我一直在使用它作为我的 POC 的一部分)。具体来说,它将在断言上失败:

谁能帮我理解这里发生了什么?我是 MT 的新手,我完全预料到我会遗漏一些东西,或者没有正确配置一些东西。

我是否正确假设如果没有注册消息订阅,那么总线将无法交付给我的任何消费者(即使消费者已注册)?

非常感谢任何帮助!

0 投票
1 回答
1316 浏览

.net - 异步页面 - 公共交通 - 服务总线

我正在尝试学习如何使用这里找到的 Mass Transit 。

我用两个控制台制作了一个项目,可以让它们互相交谈。从本质上讲,我只是按照它附带的示例进行操作,并以这种方式学习。

我现在正试图让 Mass Transit 与 Web 应用程序一起工作。我在 VS2010 中使用示例项目内容制作了一个新的 Web 应用程序,并在页面上添加了一个按钮。这个想法是,当您单击按钮时,它会向队列添加一条消息,而我正准备为 Starbucks(公共交通附带的应用程序)提供示例应用程序,它会从队列中读取消息(Cashier 或 Barista 控制台)。所以本质上,我正在尝试将星巴克的“客户”程序变成一个网络界面。

问题:

我阅读了文档,看来我必须在 Application_Start 上的全局应用程序中初始化服务总线。我这样做,然后在按钮上调用它。我只是使用:

在初始化。

我刚刚拥有的按钮:

我也试过:

和一大堆其他的东西。

它会引发错误,但在:

ServiceBusConfiguratorImpl.cs

这行说:

错误是:

所以我有点失落......

就像我说的,我真正想做的就是将“客户”程序从星巴克示例更改为 Web 界面,这样我就可以学习如何将公共交通用于 Web 应用程序。

如果有人有关于如何运行它的工作示例或教程,将不胜感激。我在谷歌上搜索了几个小时,但没有发现任何有用的东西......:S

提前致谢,

最诚挚的问候,罗宾

.net、公共交通、MSMQ、C#、服务总线

0 投票
1 回答
1933 浏览

masstransit - 大众运输消费者死亡 - Peek()

我很好奇 MassTransit 消费者是否可以在实际检索 msg 之前 Peek() 一个 MSMQ 队列。

步骤/过程是什么:

1) 消息发送到队列

2) 消费者得到它并且必须进行数据库更新——大约需要 5 秒

3) 如果第一轮成功,消费者必须进行第二轮更新。

我的问题是,如果第一次数据库更新失败,消息留在队列中(即网络问题,无法到达数据库),我该如何处理。

目前,一旦它从队列中读取消息,它就会将其删除,然后如果数据库更新失败,它就会消失..

此外,我该如何处理电源故障——我的意思是,如果消费者的“工作”进行到一半,无论是什么(数据库更新或其他)并且电源消失等,我该如何重新运行该过程队列中的味精?可以说这项工作(无论如何在我目前的情况下)正在将新行推送到表中。我的意思是我可以编写代码来首先检查该行是否存在,如果它存在则删除消息,如果不存在则运行任务,但我怎样才能让它首先重新运行整个过程?

我已经读到我可以Peek()排队,然后运行任务,然后真正阅读队列味精并将其删除,但我一生无法弄清楚这是否适用于公共交通......有点迷失......

此外,我知道 Masstransit 有,.RetryLater但我是否在此过程中使用它?是 Initially--> When--> Then -->.RetryLater在传奇中吗?

任何指针都会被接受

最诚挚的问候罗宾

编辑

PS:我用的是saga....

RetryLater 抛出错误:“现有 saga 无法接受该消息”

我不确定我还能如何访问“RetryLater”。

0 投票
1 回答
558 浏览

msmq - 未收到 MassTransit 消息

我正在使用 MassTransit 2.7.0 版在 Web 服务和网站之间进行通信。Web 服务发布消息,网站订阅它们。

发布服务:

订户网站:

在我的开发机器上一切正常,但在实时站点上却不行。消息显示在 website_subscriptions MSMQ 队列中,但它们没有被订阅的网站接收。服务器确实有多个 NIC,所以我添加了注册表设置来支持它。我没有收到任何错误或任何东西 - 它只是没有从队列中提取消息。

我错过了一些配置或权限问题吗?有什么方法可以查看为什么它不起作用?

[编辑] 我刚刚注意到 website_subscriptions 队列是来自框架的所有消息:AddPeerMessage 和 AddPeerSubscriptionMessage。来自服务的所有消息(上例中的 SomethingHappened)都在错误队列中。