只是做一些快速的尖峰,可能使用消息传递系统来处理在一个很好地解耦的工作流系统中的文件.
人们发现使用上述每个框架的优点和缺点是什么?使用这些与使用WCF绑定和/或非MSMQ解决方案的手动MSMQ系统相比有什么优势?
我听说过关于NServiceBus的讨论,但我还没有真正理解它是什么.他们声称自己是".net最受欢迎的开源服务总线".
所以; 什么是"服务巴士",什么时候需要?
我们需要具有发布/订阅功能的分布式架构消息系统/服务总线.有没有人对我们可以用于.net应用程序的框架有什么建议?
有人能够揭示新发布的Windows ServiceBus(内部部署,而不是Azure)和NServiceBus之间的差异吗?
正在寻找详细解答Windows SB可能缺失的内容,因为我很熟悉NSErviceBus可以做什么:
我想对简单的发布/订阅架构做出明智的选择.
所以我想知道:服务总线添加了什么,MSMQ不能做什么?服务总线有
哪些缺点?
感谢我的启发!
我希望看到当前正在等待传递的队列中的消息(及其内容).这样的工具存在吗?或者我应该为此编写自己的解决方案?
我正在学习消息传递系统,但对这些术语感到困惑。
下面的所有消息传递系统都提供了具有不同功能集的服务之间的松散耦合。
queue
- FIFO,拉动机制,每个队列有 1 个消费者,但有任意数量的生产者?
message bus
- 发布/订阅模型,任意数量的消费者和任意数量的生产者处理消息?是Azure Service Bus
的实现message bus
?
event bus
- 发布/订阅模型,任意数量的消费者和任意数量的生产者处理事件?
就术语而言,人们是否可以互换使用message bus
和event bus
?
事件和消息有什么区别?在这种情况下,这些只是同义词吗?
event hub
- 发布/订阅模型,分区,重放,消费者可以将事件存储在外部存储中或接近实时数据分析。究竟什么是事件中心?
event grid
- 它可以用作事件中心的下游服务。它究竟做了哪些event hub
没有做的事情?
有人可以提供一些历史背景,说明每种技术如何演变为另一种技术,每种技术都与一些实际用例相关联吗?
我发现消息总线与消息队列有帮助
message-queue servicebus azureservicebus azure-eventhub azure-eventgrid
企业服务总线(ESB),.NET服务总线(Windows Azure AppFabric Service Bus),NServiceBus,RhinoServiceBus,MassTransit等.
我试图了解这些技术的共同点或共同点.
我参加了朱瓦尔·洛的基于.NET服务总线介绍今天早些时候,他说,.NET服务总线可以作为一个穷人版的ESB的,所以我会认为这意味着在.NET服务总线是不是ESB,其他任何一个都是真正的ESB吗?
如果其他任何一个都是真正的ESB,那么它们将成为真正的ESB而不是.NET服务总线?
所以场景是我使用SB队列来限制对其他服务的传出回调.回拨给其他服务的标准问题之一是它们可能会因无法控制的时间而停机.假设我检测到目标已关闭/没有响应,放弃该消息的最佳模式是什么,以便它不会立即重新出现在队列中?
以下是我要么意识到的,尝试过或正在考虑的一些方法:
显然,如果我只是使用BrokeredMessage::Abandon()
该消息将被解锁并重新放回队列.对于这种情况以及我想要避免的情况,这显然是不可取的.
如果我只是忽略了我遇到错误并且从不调用Abandon的事实,这将使它不会立即出现,但我真的没有细致的控制,直到它再次显示多久,我想实现一个腐朽的重试策略.
我想也许我可以调用BrokeredMessage::Abandon(IDictionary<string, object>)
并以某种方式更新ScheduledEnqueueTimeUTC
属性,但我已经尝试了这个并且除了最初发送消息之外似乎没有办法影响该属性.有道理,但值得一试.
我考虑过只是BrokeredMessage::Complete()
在这种情况下使用,实际上只是用属性集将消息的新副本排入队列ScheduledEqueueTimeUTC
.
最后的子弹几乎看起来太过沉重,但我得出结论,考虑到队列的固有性质,它可能是正确的答案.我只想到在Azure SB队列中可能有一个更好的方法来实现这一点,我很想念.
我\xe2\x80\x99m 尝试按照本文中的建议从新的 Azure.Messaging.ServiceBus 包注册以进行依赖项注入,ServiceBusClient
但我无法\xe2\x80\x99m 找到任何文档或任何在线帮助来了解具体如何进行对这个。ServiceBusClientBuilderExtensions
我正在尝试添加如下
\npublic override void Configure(IFunctionsHostBuilder builder)\n{\n ServiceBusClientBuilderExtensions.AddServiceBusClient(builder, Typsy.Domain.Configuration.Settings.Instance().Connections.ServiceBusPrimary);\n}\n
Run Code Online (Sandbox Code Playgroud)\n但我收到错误
\n\n\n\n类型“Microsoft.Azure.Functions.Extensions.DependencyInjection.IFunctionsHostBuilder”必须可转换为“Azure.Core.Extensions.IAzureClientFactoryBuilder”,才能将其用作通用方法中的参数“TBuilder” IAzureClientBuilder<ServiceBusClient,ServiceBusClientOptions> Microsoft.Extensions.Azure.ServiceBusClientBuilderExtensions.AddServiceBusClient(此 TBuilder, 字符串)\'
\n
如果有人能帮忙解决这个问题那就太好了!
\nservicebus ×10
.net ×4
nservicebus ×4
azure ×3
c# ×3
msmq ×2
.net-core ×1
distributed ×1
esb ×1
masstransit ×1
messaging ×1
nservicebus3 ×1
rhino-esb ×1