Routing
In the previous example, we created four fetchers and dispatched messages to them, one after the other. We have a pool of identical actors among which we distribute tasks. Manually routing the messages to the right actor to maximize the utilization of our pool is painful and error-prone. Fortunately, Akka provides us with several routing strategies that we can use to distribute work among our pool of actors. Let's rewrite the previous example with automatic routing. You can find the code examples for this section in the chap09/fetchers_routing
directory in the sample code provided with this book (https://github.com/pbugnion/s4ds). We will reuse the same definition of Fetchers
and its companion object as we did in the previous section.
Let's start by importing the routing package:
// FetcherDemo.scala import akka.routing._
A router is an actor that forwards the messages that it receives to its children. The easiest way to define a pool of actors is to tell Akka to create a router and...