I participate in a large project using microservices based on Docker and Consul. (We use another queue service - RabbitMQ, so I canβt talk about this in detail, but in general, a queue is a queue.)
Neither Docker, Consul, nor any queue technology that I know of provides autoscaling features. Docker provides an easy way to deploy multiple instances of a service, and Consul provides a service discovery (as you said) and a key / value store. A queue is simply a way to pass messages between service instances. You did not mention anything that handles autoscaling.
To add autoscaling, you need to look at something like Kubernetes.
You can watch something like CloudFoundry or Mesos. However, both of them require a level of virtualization such as OpenStack or VMWare vSphere. There is considerable value with these products, but also price and complexity.
Instead of taking this route, I recommend that you familiarize yourself with Amazon Web Services. Using AWS, you can easily launch docker containers and configure autoscaling based on processor load, queued messages, time of day (or day of week), etc. I know that using AWS carries a price tag, but when well designed and managed, it will cost you far less than trying to design, implement, and support yourself. You can also use the smallest (i.e., free) machines and or point instances to minimize costs.
source share