# DeploymentBasedQueueBalancer

Package: [Microsoft.Orleans.Streaming](/orleans/docs/api/csharp/microsoft.orleans.streaming/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Streaming) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Streaming/QueueBalancer/DeploymentBasedQueueBalancer.cs#L22)

```csharp
public class DeploymentBasedQueueBalancer : QueueBalancerBase, IStreamQueueBalancer
```

DeploymentBasedQueueBalancer is a stream queue balancer that uses deployment information to help balance queue distribution. DeploymentBasedQueueBalancer uses the deployment configuration to determine how many silos to expect and uses a silo status oracle to determine which of the silos are available. With this information it tries to balance the queues using a best fit resource balancing algorithm.

## Constructors

- [DeploymentBasedQueueBalancer(ISiloStatusOracle, IDeploymentConfiguration, DeploymentBasedQueueBalancerOptions, IServiceProvider, ILogger&lt;DeploymentBasedQueueBalancer&gt;)](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.deploymentbasedqueuebalancer/constructors/constructor-orleans-runtime-isilostatusoracle-orleans-streams-ideploymentconfigu-899a42a3/)

## Methods

- [Create(IServiceProvider, string, IDeploymentConfiguration)](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.deploymentbasedqueuebalancer/methods/create-system-iserviceprovider-string-orleans-streams-ideploymentconfiguration-ce6e0638/)
- [GetMyQueues](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.deploymentbasedqueuebalancer/methods/getmyqueues-ec4fd391/)
- [Initialize(IStreamQueueMapper)](/orleans/docs/api/csharp/microsoft.orleans.streaming/orleans.streams.deploymentbasedqueuebalancer/methods/initialize-orleans-streams-istreamqueuemapper-e4c4e3c4/)
