in rocketmq-client-csharp/PublishLoadBalancer.cs [25:46]
public PublishLoadBalancer(TopicRouteData route)
{
this._messageQueues = new List<rmq::MessageQueue>();
foreach (var messageQueue in route.MessageQueues)
{
if (rmq::Permission.Unspecified == messageQueue.Permission)
{
continue;
}
if (rmq::Permission.Read == messageQueue.Permission)
{
continue;
}
this._messageQueues.Add(messageQueue);
}
this._messageQueues.Sort(Utilities.CompareMessageQueue);
Random random = new Random();
this._roundRobinIndex = random.Next(0, this._messageQueues.Count);
}