Azure Service Fabric和消息队列

时间:2016-05-03 11:24:48

标签: .net message-queue azure-service-fabric

现在使用Azure Service结构,是否还有使用单独的队列解决方案(如Windows Service Bus)的用例?缺点可能是一个新的单点故障,但有上升空间吗?队列可以添加一些缓冲,但另一方面,Service Fabric应该能够很好地扩展并提供有状态功能,因此不需要队列缓冲区吗?

2 个答案:

答案 0 :(得分:15)

当然,好处是Azure Service Bus和Azure存储队列等服务提供的功能在Service Fabric中不包含在开箱即用中。因此,问自己的问题是:您是否添加了外部服务依赖项来获取该功能,还是通过在Service Fabric上自行构建它来保持自包含? Service Fabric上的一个独立应用程序很好,但重新发明现有功能很糟糕,所以你必须决定最有价值的地方,并向这个方向倾斜。

例如,想想..

  • 可移植性。 Service Fabric上自包含的应用程序可以托管Service Fabric可以运行的任何位置(几乎在任何地方(Azure,其他公共云,您自己的计算机或数据中心等)。
  • 没有外部依赖性意味着更少的故障点,单个工具集以及统一的开发,部署,升级和维护过程。

另一方面..

  • 服务总线等服务提供rich set of features。是否值得花时间在Service Fabric上构建和维护您自己需要的功能?

答案 1 :(得分:7)

好问题!我也在这周围徘徊。就我而言,我正在使用RabbitMQ集群进行排队。我想避免它,并希望使用Reliable Queues提供有状态服务。我公开了一种方法,将消息添加到服务中,并使用RunAsync方法在消息到达时将消息出列。与连接到RabbitMQ的无状态服务相比,使用此方法的性能给我留下了深刻的印象。但在我放弃之前,我计划将状态服务划分为5个节点,并查看是否有任何性能改进,使用状态服务队列消耗工作人员。