Hi,
1. Publishers in AMQP send messages to exchanges. The "sharding" exchange here acts as a message partitioner as explained with the graphic in the plugin README. When using the sharding exchange there's no concept of a "single queue". Also you don't need to declare any queues, they are declared automatically by the plugin.
2. I don't understand what's the question here.
About the problem with not being able to pick all the messages by consumers. You probably need to let RabbitMQ and the plugin catchup the several basicConsume commands from the threads. The plugin tries to subscribe your consumer to the shard with the less consumers, but if the basicConsume are received concurrently, then it might be too fast, and therefore there won't be enough time internally for queues to "know" about the new consumers so they might return old stats to the plugin.
About different nodes. The plugin only subscribes consumers to local queues, therefore you might need to load balance consumers across nodes either in your app code, or using a load balancer.
Regards,
Alvaro