2012-11-15 42 views
0

我有一个使用AzureMessageQueue作为传输的Azure辅助角色承载的NServiceBus端点。我非常确定,我将在Azure中配置多个实例的情况下运行worker角色。我也有几条消息,其中订单很重要。扩展以azure工作者角色和消息顺序托管的NServicebus

这是我的问题。有没有办法通过这种类型的设置来控制订单(天青工人角色已被扩展)?

我应该看看一个传奇吗?像下面描述的技术(使用bus.send(object []消息)过载)将在此模型中工作,我猜测,但这只是在由于天蓝色队列上的大小限制而存在几条消息时才是理想的。

http://mikaelkoskinen.net/post/NServiceBus-In-order-message-processing.aspx

回答

0

Bus.Send分批将有助于等都将配置从消息队列中读取批量大小邮件是否足够小,可以definitly控制消息的这样的顺序。批量发送会将多个消息实例放入同一物理队列消息中,而批量读取将一次从队列中拉出多个物理消息,并在节点上按顺序处理它们。

另一种方法是使用Blob上的租约来同步消息处理程序中的读取。请参阅nsb timeoutmanager的代码,了解如何使用这些代码进行同步,或查看关于该主题的steve marx的博客文章。 http://blog.smarx.com/posts/managing-concurrency-in-windows-azure-with-leases

但请注意,天蓝色的消息队列不保证自己的命令,这是一个尽最大的努力。如果要保证传输级别的订单,则需要使用启用了消息排序的Azure Service Bus队列。

亲切的问候, Yves

相关问题