This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
case object BackendRegistration | |
case class Job(text: String) | |
class Frontend extends Actor { | |
var backends = IndexedSeq.empty[ActorRef] | |
var jobCounter = 0 | |
def receive = { | |
case job: Job if backends.isEmpty => |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import akka.cluster.Cluster | |
import akka.cluster.ClusterEvent._ | |
val clusterListener = system.actorOf(Props(new Actor with ActorLogging { | |
def receive = { | |
case state: CurrentClusterState ⇒ | |
log.info("Current members: {}", state.members) | |
case MemberUp(member) ⇒ | |
log.info("Member is up: {}", member) | |
// send a message to the "world" actor running at the member node |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
akka.actor.deployment { | |
/statsService/workerRouter { | |
router = round-robin | |
nr-of-instances = 100 | |
cluster { | |
enabled = on | |
routees-path = "/user/statsWorker" | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import akka.routing.ConsistentHashingRouter | |
import akka.routing.ConsistentHashingRouter.ConsistentHashMapping | |
import akka.actor.Actor | |
import akka.pattern.ask | |
case class Entry(key: String, value: String) | |
class Cache extends Actor { | |
var cache = Map.empty[String, String] | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import akka.pattern.CircuitBreaker | |
val breaker = | |
CircuitBreaker(system.scheduler, | |
maxFailures = 5, | |
callTimeout = 10.seconds, | |
resetTimeout = 1.minute) | |
def dangerous: Future[String] = | |
breaker.withCircuitBreaker(Future(dangerousCall)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package perf | |
import akka.actor.ActorSystem | |
import akka.actor.Actor | |
import akka.actor.Props | |
import scala.concurrent.forkjoin.ThreadLocalRandom | |
import akka.routing.ConsistentHashingRouter | |
import akka.routing.ConsistentHashingRouter.ConsistentHashableEnvelope | |
import scala.util.Random | |
import akka.routing.Broadcast |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package akka.cluster | |
import com.typesafe.config.ConfigFactory | |
import akka.remote.testkit.MultiNodeConfig | |
import akka.remote.testkit.MultiNodeSpec | |
import akka.testkit._ | |
import akka.util.duration._ | |
import akka.cluster.MemberStatus._ | |
object ClusterDemoMultiJvmSpec extends MultiNodeConfig { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package question | |
import java.io.IOException | |
import scala.util.Random | |
import akka.actor.Actor | |
import akka.actor.ActorRef | |
import akka.actor.ActorSystem | |
import akka.actor.OneForOneStrategy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
case object Run | |
case object Msg | |
class Destination extends Actor { | |
def receive = { | |
case Msg ⇒ sender ! Msg | |
} | |
} | |
class Client( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Run the benchmark with this as sbt start script, | |
# but change the paths (/home/nordwall) | |
# ~/bin/sbt-benchmark.sh | |
# > project akka-actor-tests | |
# > test-only akka.performance.microbench.TellThroughputPerformanceSpec | |
export JAVA=/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java | |
export FLAGS="-server -Dfile.encoding=UTF8 -XX:+UseNUMA -XX:+UseCondCardMark -XX:-UseBiasedLocking" |