现在使用Azure Service结构,是否还有使用单独的队列解决方案(如Windows Service Bus)的用例?缺点可能是一个新的单点故障,但有上升空间吗?队列可以添加一些缓冲,但另一方面,Service Fabric应该能够很好地扩展并提供有状态功能,因此不需要队列缓冲区吗?
答案 0 :(得分:15)
当然,好处是Azure Service Bus和Azure存储队列等服务提供的功能在Service Fabric中不包含在开箱即用中。因此,问自己的问题是:您是否添加了外部服务依赖项来获取该功能,还是通过在Service Fabric上自行构建它来保持自包含? Service Fabric上的一个独立应用程序很好,但重新发明现有功能很糟糕,所以你必须决定最有价值的地方,并向这个方向倾斜。
例如,想想..
另一方面..
答案 1 :(得分:7)
好问题!我也在这周围徘徊。就我而言,我正在使用RabbitMQ集群进行排队。我想避免它,并希望使用Reliable Queues提供有状态服务。我公开了一种方法,将消息添加到服务中,并使用RunAsync方法在消息到达时将消息出列。与连接到RabbitMQ的无状态服务相比,使用此方法的性能给我留下了深刻的印象。但在我放弃之前,我计划将状态服务划分为5个节点,并查看是否有任何性能改进,使用状态服务队列消耗工作人员。