Merge branch 'master' into wip-2974-escalate-uncaught-exceptions-√
This commit is contained in:
commit
1c104c382a
15 changed files with 1143 additions and 55 deletions
|
|
@ -1,22 +0,0 @@
|
|||
# Serialized objects, used for testinging serialization compatibility across
|
||||
# different versions of Akka.
|
||||
|
||||
akka.dispatch.Create = "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720014616b6b612e64697370617463682e437265617465bcdf9f7f2675038d0200014900037569647870000004d27671007e0003"
|
||||
|
||||
akka.dispatch.Recreate = "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720016616b6b612e64697370617463682e52656372656174650987c65c8d378a800200014c000563617573657400154c6a6176612f6c616e672f5468726f7761626c653b787073720020616b6b612e73657269616c697a6174696f6e2e46616b655468726f7761626c6500000000000000010200014c00036d73677400124c6a6176612f6c616e672f537472696e673b787200136a6176612e6c616e672e5468726f7761626c65d5c635273977b8cb0300044c0005636175736571007e00044c000d64657461696c4d65737361676571007e00075b000a737461636b547261636574001e5b4c6a6176612f6c616e672f537461636b5472616365456c656d656e743b4c001473757070726573736564457863657074696f6e737400104c6a6176612f7574696c2f4c6973743b787071007e000b740001787572001e5b4c6a6176612e6c616e672e537461636b5472616365456c656d656e743b02462a3c3cfd2239020000787000000000737200266a6176612e7574696c2e436f6c6c656374696f6e7324556e6d6f6469666961626c654c697374fc0f2531b5ec8e100200014c00046c69737471007e000a7872002c6a6176612e7574696c2e436f6c6c656374696f6e7324556e6d6f6469666961626c65436f6c6c656374696f6e19420080cb5ef71e0200014c0001637400164c6a6176612f7574696c2f436f6c6c656374696f6e3b7870737200136a6176612e7574696c2e41727261794c6973747881d21d99c7619d03000149000473697a657870000000007704000000007871007e00147871007e000c7671007e0003"
|
||||
|
||||
akka.dispatch.Suspend = "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720015616b6b612e64697370617463682e53757370656e6464e531d5d134b59902000078707671007e0003"
|
||||
|
||||
akka.dispatch.Resume = "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720014616b6b612e64697370617463682e526573756d65dc5e646d445fcb010200014c000f63617573656442794661696c7572657400154c6a6176612f6c616e672f5468726f7761626c653b787073720020616b6b612e73657269616c697a6174696f6e2e46616b655468726f7761626c6500000000000000010200014c00036d73677400124c6a6176612f6c616e672f537472696e673b787200136a6176612e6c616e672e5468726f7761626c65d5c635273977b8cb0300044c0005636175736571007e00044c000d64657461696c4d65737361676571007e00075b000a737461636b547261636574001e5b4c6a6176612f6c616e672f537461636b5472616365456c656d656e743b4c001473757070726573736564457863657074696f6e737400104c6a6176612f7574696c2f4c6973743b787071007e000b740001787572001e5b4c6a6176612e6c616e672e537461636b5472616365456c656d656e743b02462a3c3cfd2239020000787000000000737200266a6176612e7574696c2e436f6c6c656374696f6e7324556e6d6f6469666961626c654c697374fc0f2531b5ec8e100200014c00046c69737471007e000a7872002c6a6176612e7574696c2e436f6c6c656374696f6e7324556e6d6f6469666961626c65436f6c6c656374696f6e19420080cb5ef71e0200014c0001637400164c6a6176612f7574696c2f436f6c6c656374696f6e3b7870737200136a6176612e7574696c2e41727261794c6973747881d21d99c7619d03000149000473697a657870000000007704000000007871007e00147871007e000c7671007e0003"
|
||||
|
||||
akka.dispatch.Terminate = "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720017616b6b612e64697370617463682e5465726d696e61746509d66ca68318700f02000078707671007e0003"
|
||||
|
||||
akka.dispatch.Supervise = "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720017616b6b612e64697370617463682e5375706572766973652d0b363f56ab5feb0200035a00056173796e634900037569644c00056368696c647400154c616b6b612f6163746f722f4163746f725265663b787001000009a47372001f616b6b612e73657269616c697a6174696f6e2e46616b654163746f7252656600000000000000010200014c00046e616d657400124c6a6176612f6c616e672f537472696e673b7872001b616b6b612e6163746f722e496e7465726e616c4163746f725265660d0aa2ca1e82097602000078720013616b6b612e6163746f722e4163746f72526566c3585dde655f469402000078707400056368696c647671007e0003"
|
||||
|
||||
akka.dispatch.ChildTerminated = "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e000178707372001d616b6b612e64697370617463682e4368696c645465726d696e617465644c84222437ed5db40200014c00056368696c647400154c616b6b612f6163746f722f4163746f725265663b78707372001f616b6b612e73657269616c697a6174696f6e2e46616b654163746f7252656600000000000000010200014c00046e616d657400124c6a6176612f6c616e672f537472696e673b7872001b616b6b612e6163746f722e496e7465726e616c4163746f725265660d0aa2ca1e82097602000078720013616b6b612e6163746f722e4163746f72526566c3585dde655f469402000078707400056368696c647671007e0003"
|
||||
|
||||
akka.dispatch.Watch = "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720013616b6b612e64697370617463682e57617463682e1e65bc74394fc40200024c0007776174636865657400154c616b6b612f6163746f722f4163746f725265663b4c00077761746368657271007e000478707372001f616b6b612e73657269616c697a6174696f6e2e46616b654163746f7252656600000000000000010200014c00046e616d657400124c6a6176612f6c616e672f537472696e673b7872001b616b6b612e6163746f722e496e7465726e616c4163746f725265660d0aa2ca1e82097602000078720013616b6b612e6163746f722e4163746f72526566c3585dde655f46940200007870740007776174636865657371007e0006740007776174636865727671007e0003"
|
||||
|
||||
akka.dispatch.Unwatch = "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720015616b6b612e64697370617463682e556e776174636858501f7ee63dc2100200024c0007776174636865657400154c616b6b612f6163746f722f4163746f725265663b4c00077761746368657271007e000478707372001f616b6b612e73657269616c697a6174696f6e2e46616b654163746f7252656600000000000000010200014c00046e616d657400124c6a6176612f6c616e672f537472696e673b7872001b616b6b612e6163746f722e496e7465726e616c4163746f725265660d0aa2ca1e82097602000078720013616b6b612e6163746f722e4163746f72526566c3585dde655f46940200007870740007776174636865657371007e0006740007776174636865727671007e0003"
|
||||
|
||||
akka.dispatch.NoMessage = "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720018616b6b612e64697370617463682e4e6f4d65737361676524b401a3610ccb70dd02000078707671007e0003"
|
||||
|
|
@ -211,7 +211,7 @@ class TypedActorSpec extends AkkaSpec(TypedActorSpec.config)
|
|||
|
||||
import TypedActorSpec._
|
||||
|
||||
def newFooBar: Foo = newFooBar(Duration(2, "s"))
|
||||
def newFooBar: Foo = newFooBar(timeout.duration)
|
||||
|
||||
def newFooBar(d: FiniteDuration): Foo =
|
||||
TypedActor(system).typedActorOf(TypedProps[Bar](classOf[Foo], classOf[Bar]).withTimeout(Timeout(d)))
|
||||
|
|
@ -221,7 +221,7 @@ class TypedActorSpec extends AkkaSpec(TypedActorSpec.config)
|
|||
|
||||
def newStacked(): Stacked =
|
||||
TypedActor(system).typedActorOf(
|
||||
TypedProps[StackedImpl](classOf[Stacked], classOf[StackedImpl]).withTimeout(Timeout(2000)))
|
||||
TypedProps[StackedImpl](classOf[Stacked], classOf[StackedImpl]).withTimeout(timeout))
|
||||
|
||||
def mustStop(typedActor: AnyRef) = TypedActor(system).stop(typedActor) must be(true)
|
||||
|
||||
|
|
@ -296,7 +296,7 @@ class TypedActorSpec extends AkkaSpec(TypedActorSpec.config)
|
|||
t.nullJOption() must be === JOption.none
|
||||
t.nullOption() must be === None
|
||||
t.nullReturn() must be === null
|
||||
Await.result(t.nullFuture(), remaining) must be === null
|
||||
Await.result(t.nullFuture(), timeout.duration) must be === null
|
||||
}
|
||||
|
||||
"be able to call Future-returning methods non-blockingly" in {
|
||||
|
|
@ -307,11 +307,11 @@ class TypedActorSpec extends AkkaSpec(TypedActorSpec.config)
|
|||
mustStop(t)
|
||||
}
|
||||
|
||||
"be able to call multiple Future-returning methods non-blockingly" in {
|
||||
"be able to call multiple Future-returning methods non-blockingly" in within(timeout.duration) {
|
||||
val t = newFooBar
|
||||
val futures = for (i ← 1 to 20) yield (i, t.futurePigdog(20, i))
|
||||
for ((i, f) ← futures) {
|
||||
Await.result(f, timeout.duration) must be("Pigdog" + i)
|
||||
Await.result(f, remaining) must be("Pigdog" + i)
|
||||
}
|
||||
mustStop(t)
|
||||
}
|
||||
|
|
@ -330,11 +330,11 @@ class TypedActorSpec extends AkkaSpec(TypedActorSpec.config)
|
|||
mustStop(t)
|
||||
}
|
||||
|
||||
"be able to compose futures without blocking" in {
|
||||
val t, t2 = newFooBar(2 seconds)
|
||||
"be able to compose futures without blocking" in within(timeout.duration) {
|
||||
val t, t2 = newFooBar(remaining)
|
||||
val f = t.futureComposePigdogFrom(t2)
|
||||
f.isCompleted must be(false)
|
||||
Await.result(f, timeout.duration) must equal("PIGDOG")
|
||||
Await.result(f, remaining) must equal("PIGDOG")
|
||||
mustStop(t)
|
||||
mustStop(t2)
|
||||
}
|
||||
|
|
@ -391,13 +391,13 @@ class TypedActorSpec extends AkkaSpec(TypedActorSpec.config)
|
|||
mustStop(t)
|
||||
}
|
||||
|
||||
"be able to support implementation only typed actors" in {
|
||||
"be able to support implementation only typed actors" in within(timeout.duration) {
|
||||
val t: Foo = TypedActor(system).typedActorOf(TypedProps[Bar]())
|
||||
val f = t.futurePigdog(200)
|
||||
val f2 = t.futurePigdog(0)
|
||||
f2.isCompleted must be(false)
|
||||
f.isCompleted must be(false)
|
||||
Await.result(f, timeout.duration) must equal(Await.result(f2, timeout.duration))
|
||||
Await.result(f, remaining) must equal(Await.result(f2, remaining))
|
||||
mustStop(t)
|
||||
}
|
||||
|
||||
|
|
@ -408,13 +408,13 @@ class TypedActorSpec extends AkkaSpec(TypedActorSpec.config)
|
|||
mustStop(t)
|
||||
}
|
||||
|
||||
"be able to use balancing dispatcher" in {
|
||||
"be able to use balancing dispatcher" in within(timeout.duration) {
|
||||
val thais = for (i ← 1 to 60) yield newFooBar("pooled-dispatcher", 6 seconds)
|
||||
val iterator = new CyclicIterator(thais)
|
||||
|
||||
val results = for (i ← 1 to 120) yield (i, iterator.next.futurePigdog(200L, i))
|
||||
|
||||
for ((i, r) ← results) Await.result(r, timeout.duration) must be("Pigdog" + i)
|
||||
for ((i, r) ← results) Await.result(r, remaining) must be("Pigdog" + i)
|
||||
|
||||
for (t ← thais) mustStop(t)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -328,26 +328,39 @@ class SerializationCompatibilitySpec extends AkkaSpec(SerializationTests.mostlyR
|
|||
val ser = SerializationExtension(system)
|
||||
|
||||
"Cross-version serialization compatibility" must {
|
||||
def verify(obj: Any, asExpected: String): Unit =
|
||||
String.valueOf(encodeHex(ser.serialize(obj, obj.getClass).get)) must be(asExpected)
|
||||
|
||||
"be preserved for SystemMessages" in {
|
||||
val objs = List[(String, Any)](
|
||||
("akka.dispatch.Create", Create(1234)),
|
||||
("akka.dispatch.Recreate", Recreate(FakeThrowable("x"))),
|
||||
("akka.dispatch.Suspend", Suspend()),
|
||||
("akka.dispatch.Resume", Resume(FakeThrowable("x"))),
|
||||
("akka.dispatch.Terminate", Terminate()),
|
||||
("akka.dispatch.Supervise", Supervise(FakeActorRef("child"), true, 2468)),
|
||||
("akka.dispatch.ChildTerminated", ChildTerminated(FakeActorRef("child"))),
|
||||
("akka.dispatch.Watch", Watch(FakeActorRef("watchee"), FakeActorRef("watcher"))),
|
||||
("akka.dispatch.Unwatch", Unwatch(FakeActorRef("watchee"), FakeActorRef("watcher"))),
|
||||
("akka.dispatch.NoMessage", NoMessage))
|
||||
val expectedConf = ConfigFactory.load("akka/serialization/serialized.conf")
|
||||
for ((key, obj) ← objs) {
|
||||
val hex = new String(encodeHex(ser.serialize(obj, obj.getClass).get))
|
||||
hex must be(expectedConf.getString(key))
|
||||
}
|
||||
"be preserved for the Create SystemMessage" in {
|
||||
verify(Create(1234), "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720014616b6b612e64697370617463682e437265617465bcdf9f7f2675038d0200014900037569647870000004d27671007e0003")
|
||||
}
|
||||
"be preserved for the Recreate SystemMessage" in {
|
||||
verify(Recreate(null), "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720016616b6b612e64697370617463682e52656372656174650987c65c8d378a800200014c000563617573657400154c6a6176612f6c616e672f5468726f7761626c653b7870707671007e0003")
|
||||
}
|
||||
"be preserved for the Suspend SystemMessage" in {
|
||||
verify(Suspend(), "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720015616b6b612e64697370617463682e53757370656e6464e531d5d134b59902000078707671007e0003")
|
||||
}
|
||||
"be preserved for the Resume SystemMessage" in {
|
||||
verify(Resume(null), "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720014616b6b612e64697370617463682e526573756d65dc5e646d445fcb010200014c000f63617573656442794661696c7572657400154c6a6176612f6c616e672f5468726f7761626c653b7870707671007e0003")
|
||||
}
|
||||
"be preserved for the Terminate SystemMessage" in {
|
||||
verify(Terminate(), "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720017616b6b612e64697370617463682e5465726d696e61746509d66ca68318700f02000078707671007e0003")
|
||||
}
|
||||
"be preserved for the Supervise SystemMessage" in {
|
||||
verify(Supervise(FakeActorRef("child"), true, 2468), "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720017616b6b612e64697370617463682e5375706572766973652d0b363f56ab5feb0200035a00056173796e634900037569644c00056368696c647400154c616b6b612f6163746f722f4163746f725265663b787001000009a47372001f616b6b612e73657269616c697a6174696f6e2e46616b654163746f7252656600000000000000010200014c00046e616d657400124c6a6176612f6c616e672f537472696e673b7872001b616b6b612e6163746f722e496e7465726e616c4163746f725265660d0aa2ca1e82097602000078720013616b6b612e6163746f722e4163746f72526566c3585dde655f469402000078707400056368696c647671007e0003")
|
||||
}
|
||||
"be preserved for the ChildTerminated SystemMessage" in {
|
||||
verify(ChildTerminated(FakeActorRef("child")), "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e000178707372001d616b6b612e64697370617463682e4368696c645465726d696e617465644c84222437ed5db40200014c00056368696c647400154c616b6b612f6163746f722f4163746f725265663b78707372001f616b6b612e73657269616c697a6174696f6e2e46616b654163746f7252656600000000000000010200014c00046e616d657400124c6a6176612f6c616e672f537472696e673b7872001b616b6b612e6163746f722e496e7465726e616c4163746f725265660d0aa2ca1e82097602000078720013616b6b612e6163746f722e4163746f72526566c3585dde655f469402000078707400056368696c647671007e0003")
|
||||
}
|
||||
"be preserved for the Watch SystemMessage" in {
|
||||
verify(Watch(FakeActorRef("watchee"), FakeActorRef("watcher")), "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720013616b6b612e64697370617463682e57617463682e1e65bc74394fc40200024c0007776174636865657400154c616b6b612f6163746f722f4163746f725265663b4c00077761746368657271007e000478707372001f616b6b612e73657269616c697a6174696f6e2e46616b654163746f7252656600000000000000010200014c00046e616d657400124c6a6176612f6c616e672f537472696e673b7872001b616b6b612e6163746f722e496e7465726e616c4163746f725265660d0aa2ca1e82097602000078720013616b6b612e6163746f722e4163746f72526566c3585dde655f46940200007870740007776174636865657371007e0006740007776174636865727671007e0003")
|
||||
}
|
||||
"be preserved for the Unwatch SystemMessage" in {
|
||||
verify(Unwatch(FakeActorRef("watchee"), FakeActorRef("watcher")), "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720015616b6b612e64697370617463682e556e776174636858501f7ee63dc2100200024c0007776174636865657400154c616b6b612f6163746f722f4163746f725265663b4c00077761746368657271007e000478707372001f616b6b612e73657269616c697a6174696f6e2e46616b654163746f7252656600000000000000010200014c00046e616d657400124c6a6176612f6c616e672f537472696e673b7872001b616b6b612e6163746f722e496e7465726e616c4163746f725265660d0aa2ca1e82097602000078720013616b6b612e6163746f722e4163746f72526566c3585dde655f46940200007870740007776174636865657371007e0006740007776174636865727671007e0003")
|
||||
}
|
||||
"be preserved for the NoMessage SystemMessage" in {
|
||||
verify(NoMessage, "aced00057372000c7363616c612e5475706c6532bc7daadf46211a990200024c00025f317400124c6a6176612f6c616e672f4f626a6563743b4c00025f3271007e0001787073720018616b6b612e64697370617463682e4e6f4d65737361676524b401a3610ccb70dd02000078707671007e0003")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -275,8 +275,8 @@ class ByteStringSpec extends WordSpec with MustMatchers with Checkers {
|
|||
check { (a: ByteString) ⇒ a.asByteBuffers.foldLeft(ByteString.empty) { (bs, bb) ⇒ bs ++ ByteString(bb) } == a }
|
||||
check { (a: ByteString) ⇒ a.asByteBuffers.forall(_.isReadOnly) }
|
||||
check { (a: ByteString) ⇒
|
||||
import scala.collection.JavaConverters.iterableAsScalaIterableConverter;
|
||||
a.asByteBuffers.zip(a.getByteBuffers().asScala).forall(x ⇒ x._1 == x._2)
|
||||
import scala.collection.JavaConverters.iterableAsScalaIterableConverter;
|
||||
a.asByteBuffers.zip(a.getByteBuffers().asScala).forall(x ⇒ x._1 == x._2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ import scala.concurrent.{ Await, Awaitable, CanAwait, Future, ExecutionContext }
|
|||
import scala.util.{ Failure, Success }
|
||||
import scala.util.control.{ NonFatal, ControlThrowable }
|
||||
|
||||
|
||||
object ActorSystem {
|
||||
|
||||
val Version: String = "2.2-SNAPSHOT"
|
||||
|
|
|
|||
406
akka-osgi/src/main/resources/akka-actor.conf
Normal file
406
akka-osgi/src/main/resources/akka-actor.conf
Normal file
|
|
@ -0,0 +1,406 @@
|
|||
####################################
|
||||
# Akka Actor Reference Config File #
|
||||
####################################
|
||||
|
||||
# This is the reference config file that contains all the default settings.
|
||||
# Make your edits/overrides in your application.conf.
|
||||
|
||||
akka {
|
||||
# Akka version, checked against the runtime version of Akka.
|
||||
version = "2.2-SNAPSHOT"
|
||||
|
||||
# Home directory of Akka, modules in the deploy directory will be loaded
|
||||
home = ""
|
||||
|
||||
# Event handlers to register at boot time (Logging$DefaultLogger logs to STDOUT)
|
||||
event-handlers = ["akka.event.Logging$DefaultLogger"]
|
||||
|
||||
# Event handlers are created and registered synchronously during ActorSystem
|
||||
# start-up, and since they are actors, this timeout is used to bound the
|
||||
# waiting time
|
||||
event-handler-startup-timeout = 5s
|
||||
|
||||
# Log level used by the configured loggers (see "event-handlers") as soon
|
||||
# as they have been started; before that, see "stdout-loglevel"
|
||||
# Options: ERROR, WARNING, INFO, DEBUG
|
||||
loglevel = "INFO"
|
||||
|
||||
# Log level for the very basic logger activated during AkkaApplication startup
|
||||
# Options: ERROR, WARNING, INFO, DEBUG
|
||||
stdout-loglevel = "WARNING"
|
||||
|
||||
# Log the complete configuration at INFO level when the actor system is started.
|
||||
# This is useful when you are uncertain of what configuration is used.
|
||||
log-config-on-start = off
|
||||
|
||||
# List FQCN of extensions which shall be loaded at actor system startup.
|
||||
# Should be on the format: 'extensions = ["foo", "bar"]' etc.
|
||||
# See the Akka Documentation for more info about Extensions
|
||||
extensions = []
|
||||
|
||||
# Toggles whether threads created by this ActorSystem should be daemons or not
|
||||
daemonic = off
|
||||
|
||||
# JVM shutdown, System.exit(-1), in case of a fatal error,
|
||||
# such as OutOfMemoryError
|
||||
jvm-exit-on-fatal-error = on
|
||||
|
||||
actor {
|
||||
|
||||
# FQCN of the ActorRefProvider to be used; the below is the built-in default,
|
||||
# another one is akka.remote.RemoteActorRefProvider in the akka-remote bundle.
|
||||
provider = "akka.actor.LocalActorRefProvider"
|
||||
|
||||
# The guardian "/user" will use this class to obtain its supervisorStrategy.
|
||||
# It needs to be a subclass of akka.actor.SupervisorStrategyConfigurator.
|
||||
# In addition to the default there is akka.actor.StoppingSupervisorStrategy.
|
||||
guardian-supervisor-strategy = "akka.actor.DefaultSupervisorStrategy"
|
||||
|
||||
# Timeout for ActorSystem.actorOf
|
||||
creation-timeout = 20s
|
||||
|
||||
# Frequency with which stopping actors are prodded in case they had to be
|
||||
# removed from their parents
|
||||
reaper-interval = 5s
|
||||
|
||||
# Serializes and deserializes (non-primitive) messages to ensure immutability,
|
||||
# this is only intended for testing.
|
||||
serialize-messages = off
|
||||
|
||||
# Serializes and deserializes creators (in Props) to ensure that they can be
|
||||
# sent over the network, this is only intended for testing.
|
||||
serialize-creators = off
|
||||
|
||||
# Timeout for send operations to top-level actors which are in the process
|
||||
# of being started. This is only relevant if using a bounded mailbox or the
|
||||
# CallingThreadDispatcher for a top-level actor.
|
||||
unstarted-push-timeout = 10s
|
||||
|
||||
typed {
|
||||
# Default timeout for typed actor methods with non-void return type
|
||||
timeout = 5s
|
||||
}
|
||||
|
||||
deployment {
|
||||
|
||||
# deployment id pattern - on the format: /parent/child etc.
|
||||
default {
|
||||
|
||||
# routing (load-balance) scheme to use
|
||||
# - available: "from-code", "round-robin", "random", "smallest-mailbox",
|
||||
# "scatter-gather", "broadcast"
|
||||
# - or: Fully qualified class name of the router class.
|
||||
# The class must extend akka.routing.CustomRouterConfig and
|
||||
# have a constructor with com.typesafe.config.Config
|
||||
# parameter.
|
||||
# - default is "from-code";
|
||||
# Whether or not an actor is transformed to a Router is decided in code
|
||||
# only (Props.withRouter). The type of router can be overridden in the
|
||||
# configuration; specifying "from-code" means that the values specified
|
||||
# in the code shall be used.
|
||||
# In case of routing, the actors to be routed to can be specified
|
||||
# in several ways:
|
||||
# - nr-of-instances: will create that many children
|
||||
# - routees.paths: will look the paths up using actorFor and route to
|
||||
# them, i.e. will not create children
|
||||
# - resizer: dynamically resizable number of routees as specified in
|
||||
# resizer below
|
||||
router = "from-code"
|
||||
|
||||
# number of children to create in case of a non-direct router;
|
||||
# this setting is ignored if routees.paths is given
|
||||
nr-of-instances = 1
|
||||
|
||||
# within is the timeout used for routers containing future calls
|
||||
within = 5 seconds
|
||||
|
||||
# number of virtual nodes per node for consistent-hashing router
|
||||
virtual-nodes-factor = 10
|
||||
|
||||
routees {
|
||||
# Alternatively to giving nr-of-instances you can specify the full
|
||||
# paths of those actors which should be routed to. This setting takes
|
||||
# precedence over nr-of-instances
|
||||
paths = []
|
||||
}
|
||||
|
||||
# Routers with dynamically resizable number of routees; this feature is
|
||||
# enabled by including (parts of) this section in the deployment
|
||||
resizer {
|
||||
|
||||
# The fewest number of routees the router should ever have.
|
||||
lower-bound = 1
|
||||
|
||||
# The most number of routees the router should ever have.
|
||||
# Must be greater than or equal to lower-bound.
|
||||
upper-bound = 10
|
||||
|
||||
# Threshold used to evaluate if a routee is considered to be busy
|
||||
# (under pressure). Implementation depends on this value (default is 1).
|
||||
# 0: number of routees currently processing a message.
|
||||
# 1: number of routees currently processing a message has
|
||||
# some messages in mailbox.
|
||||
# > 1: number of routees with at least the configured pressure-threshold
|
||||
# messages in their mailbox. Note that estimating mailbox size of
|
||||
# default UnboundedMailbox is O(N) operation.
|
||||
pressure-threshold = 1
|
||||
|
||||
# Percentage to increase capacity whenever all routees are busy.
|
||||
# For example, 0.2 would increase 20% (rounded up), i.e. if current
|
||||
# capacity is 6 it will request an increase of 2 more routees.
|
||||
rampup-rate = 0.2
|
||||
|
||||
# Minimum fraction of busy routees before backing off.
|
||||
# For example, if this is 0.3, then we'll remove some routees only when
|
||||
# less than 30% of routees are busy, i.e. if current capacity is 10 and
|
||||
# 3 are busy then the capacity is unchanged, but if 2 or less are busy
|
||||
# the capacity is decreased.
|
||||
# Use 0.0 or negative to avoid removal of routees.
|
||||
backoff-threshold = 0.3
|
||||
|
||||
# Fraction of routees to be removed when the resizer reaches the
|
||||
# backoffThreshold.
|
||||
# For example, 0.1 would decrease 10% (rounded up), i.e. if current
|
||||
# capacity is 9 it will request an decrease of 1 routee.
|
||||
backoff-rate = 0.1
|
||||
|
||||
# When the resizer reduce the capacity the abandoned routee actors are
|
||||
# stopped with PoisonPill after this delay. The reason for the delay is
|
||||
# to give concurrent messages a chance to be placed in mailbox before
|
||||
# sending PoisonPill.
|
||||
# Use 0s to skip delay.
|
||||
stop-delay = 1s
|
||||
|
||||
# Number of messages between resize operation.
|
||||
# Use 1 to resize before each message.
|
||||
messages-per-resize = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Default dispatcher for Actors that extend Stash
|
||||
default-stash-dispatcher {
|
||||
mailbox-type = "akka.dispatch.UnboundedDequeBasedMailbox"
|
||||
}
|
||||
|
||||
default-dispatcher {
|
||||
# Must be one of the following
|
||||
# Dispatcher, (BalancingDispatcher, only valid when all actors using it are
|
||||
# of the same type), PinnedDispatcher, or a FQCN to a class inheriting
|
||||
# MessageDispatcherConfigurator with a constructor with
|
||||
# both com.typesafe.config.Config parameter and
|
||||
# akka.dispatch.DispatcherPrerequisites parameters.
|
||||
# PinnedDispatcher must be used toghether with executor=thread-pool-executor.
|
||||
type = "Dispatcher"
|
||||
|
||||
# Which kind of ExecutorService to use for this dispatcher
|
||||
# Valid options:
|
||||
# - "fork-join-executor" requires a "fork-join-executor" section
|
||||
# - "thread-pool-executor" requires a "thread-pool-executor" section
|
||||
# - A FQCN of a class extending ExecutorServiceConfigurator
|
||||
executor = "fork-join-executor"
|
||||
|
||||
# This will be used if you have set "executor = "fork-join-executor""
|
||||
fork-join-executor {
|
||||
# Min number of threads to cap factor-based parallelism number to
|
||||
parallelism-min = 8
|
||||
|
||||
# The parallelism factor is used to determine thread pool size using the
|
||||
# following formula: ceil(available processors * factor). Resulting size
|
||||
# is then bounded by the parallelism-min and parallelism-max values.
|
||||
parallelism-factor = 3.0
|
||||
|
||||
# Max number of threads to cap factor-based parallelism number to
|
||||
parallelism-max = 64
|
||||
}
|
||||
|
||||
# This will be used if you have set "executor = "thread-pool-executor""
|
||||
thread-pool-executor {
|
||||
# Keep alive time for threads
|
||||
keep-alive-time = 60s
|
||||
|
||||
# Min number of threads to cap factor-based core number to
|
||||
core-pool-size-min = 8
|
||||
|
||||
# The core pool size factor is used to determine thread pool core size
|
||||
# using the following formula: ceil(available processors * factor).
|
||||
# Resulting size is then bounded by the core-pool-size-min and
|
||||
# core-pool-size-max values.
|
||||
core-pool-size-factor = 3.0
|
||||
|
||||
# Max number of threads to cap factor-based number to
|
||||
core-pool-size-max = 64
|
||||
|
||||
# Minimum number of threads to cap factor-based max number to
|
||||
# (if using a bounded task queue)
|
||||
max-pool-size-min = 8
|
||||
|
||||
# Max no of threads (if using a bounded task queue) is determined by
|
||||
# calculating: ceil(available processors * factor)
|
||||
max-pool-size-factor = 3.0
|
||||
|
||||
# Max number of threads to cap factor-based max number to
|
||||
# (if using a bounded task queue)
|
||||
max-pool-size-max = 64
|
||||
|
||||
# Specifies the bounded capacity of the task queue (< 1 == unbounded)
|
||||
task-queue-size = -1
|
||||
|
||||
# Specifies which type of task queue will be used, can be "array" or
|
||||
# "linked" (default)
|
||||
task-queue-type = "linked"
|
||||
|
||||
# Allow core threads to time out
|
||||
allow-core-timeout = on
|
||||
}
|
||||
|
||||
# How long time the dispatcher will wait for new actors until it shuts down
|
||||
shutdown-timeout = 1s
|
||||
|
||||
# Throughput defines the number of messages that are processed in a batch
|
||||
# before the thread is returned to the pool. Set to 1 for as fair as possible.
|
||||
throughput = 5
|
||||
|
||||
# Throughput deadline for Dispatcher, set to 0 or negative for no deadline
|
||||
throughput-deadline-time = 0ms
|
||||
|
||||
# If negative (or zero) then an unbounded mailbox is used (default)
|
||||
# If positive then a bounded mailbox is used and the capacity is set using
|
||||
# the property
|
||||
# NOTE: setting a mailbox to 'blocking' can be a bit dangerous, could lead
|
||||
# to deadlock, use with care
|
||||
# The following mailbox-push-timeout-time is only used for type=Dispatcher
|
||||
# and only if mailbox-capacity > 0
|
||||
mailbox-capacity = -1
|
||||
|
||||
# Specifies the timeout to add a new message to a mailbox that is full -
|
||||
# negative number means infinite timeout. It is only used for type=Dispatcher
|
||||
# and only if mailbox-capacity > 0
|
||||
mailbox-push-timeout-time = 10s
|
||||
|
||||
# FQCN of the MailboxType, if not specified the default bounded or unbounded
|
||||
# mailbox is used. The Class of the FQCN must have a constructor with
|
||||
# (akka.actor.ActorSystem.Settings, com.typesafe.config.Config) parameters.
|
||||
mailbox-type = ""
|
||||
|
||||
# For BalancingDispatcher: If the balancing dispatcher should attempt to
|
||||
# schedule idle actors using the same dispatcher when a message comes in,
|
||||
# and the dispatchers ExecutorService is not fully busy already.
|
||||
attempt-teamwork = on
|
||||
|
||||
# For Actor with Stash: The default capacity of the stash.
|
||||
# If negative (or zero) then an unbounded stash is used (default)
|
||||
# If positive then a bounded stash is used and the capacity is set using
|
||||
# the property
|
||||
stash-capacity = -1
|
||||
}
|
||||
|
||||
debug {
|
||||
# enable function of Actor.loggable(), which is to log any received message
|
||||
# at DEBUG level, see the “Testing Actor Systems” section of the Akka
|
||||
# Documentation at http://akka.io/docs
|
||||
receive = off
|
||||
|
||||
# enable DEBUG logging of all AutoReceiveMessages (Kill, PoisonPill et.c.)
|
||||
autoreceive = off
|
||||
|
||||
# enable DEBUG logging of actor lifecycle changes
|
||||
lifecycle = off
|
||||
|
||||
# enable DEBUG logging of all LoggingFSMs for events, transitions and timers
|
||||
fsm = off
|
||||
|
||||
# enable DEBUG logging of subscription changes on the eventStream
|
||||
event-stream = off
|
||||
|
||||
# enable DEBUG logging of unhandled messages
|
||||
unhandled = off
|
||||
|
||||
# enable WARN logging of misconfigured routers
|
||||
router-misconfiguration = off
|
||||
}
|
||||
|
||||
# Entries for pluggable serializers and their bindings.
|
||||
serializers {
|
||||
java = "akka.serialization.JavaSerializer"
|
||||
bytes = "akka.serialization.ByteArraySerializer"
|
||||
}
|
||||
|
||||
# Class to Serializer binding. You only need to specify the name of an
|
||||
# interface or abstract base class of the messages. In case of ambiguity it
|
||||
# is using the most specific configured class, or giving a warning and
|
||||
# choosing the “first” one.
|
||||
#
|
||||
# To disable one of the default serializers, assign its class to "none", like
|
||||
# "java.io.Serializable" = none
|
||||
serialization-bindings {
|
||||
"[B" = bytes
|
||||
"java.io.Serializable" = java
|
||||
}
|
||||
|
||||
# Configuration items which are used by the akka.actor.ActorDSL._ methods
|
||||
dsl {
|
||||
# Maximum queue size of the actor created by newInbox(); this protects
|
||||
# against faulty programs which use select() and consistently miss messages
|
||||
inbox-size = 1000
|
||||
|
||||
# Default timeout to assume for operations like Inbox.receive et al
|
||||
default-timeout = 5s
|
||||
}
|
||||
}
|
||||
|
||||
# Used to set the behavior of the scheduler.
|
||||
# Changing the default values may change the system behavior drastically so make
|
||||
# sure you know what you're doing! See the Scheduler section of the Akka
|
||||
# Documentation for more details.
|
||||
scheduler {
|
||||
# The HashedWheelTimer (HWT) implementation from Netty is used as the default
|
||||
# scheduler in the system.
|
||||
# HWT does not execute the scheduled tasks on exact time.
|
||||
# It will, on every tick, check if there are any tasks behind the schedule
|
||||
# and execute them. You can increase or decrease the accuracy of the execution
|
||||
# timing by specifying smaller or larger tick duration.
|
||||
# If you are scheduling a lot of tasks you should consider increasing the
|
||||
# ticks per wheel.
|
||||
# For more information see: http://www.jboss.org/netty/
|
||||
tick-duration = 100ms
|
||||
|
||||
# The timer uses a circular wheel of buckets to store the timer tasks.
|
||||
# This should be set such that the majority of scheduled timeouts (for high
|
||||
# scheduling frequency) will be shorter than one rotation of the wheel
|
||||
# (ticks-per-wheel * ticks-duration)
|
||||
# THIS MUST BE A POWER OF TWO!
|
||||
ticks-per-wheel = 512
|
||||
|
||||
# This setting selects the timer implementation which shall be loaded at
|
||||
# system start-up. Built-in choices are:
|
||||
# - akka.actor.DefaultScheduler (HWT)
|
||||
# - akka.actor.LightArrayRevolverScheduler
|
||||
# (to be benchmarked and evaluated)
|
||||
# The class given here must implement the akka.actor.Scheduler interface
|
||||
# and offer a constructor which takes three arguments:
|
||||
# 1) com.typesafe.config.Config
|
||||
# 2) akka.event.LoggingAdapter
|
||||
# 3) java.util.concurrent.ThreadFactory
|
||||
implementation = akka.actor.LightArrayRevolverScheduler
|
||||
|
||||
# When shutting down the scheduler, there will typically be a thread which
|
||||
# needs to be stopped, and this timeout determines how long to wait for
|
||||
# that to happen. In case of timeout the shutdown of the actor system will
|
||||
# proceed without running possibly still enqueued tasks.
|
||||
shutdown-timeout = 5s
|
||||
}
|
||||
|
||||
io {
|
||||
# In bytes, the size of the shared read buffer. In the span 0b..2GiB.
|
||||
#
|
||||
read-buffer-size = 8KiB
|
||||
|
||||
# Specifies how many ops are done between every descriptor selection
|
||||
select-interval = 100
|
||||
|
||||
# Number of connections that are allowed in the backlog.
|
||||
# 0 or negative means that the platform default will be used.
|
||||
default-backlog = 1000
|
||||
}
|
||||
}
|
||||
23
akka-osgi/src/main/resources/akka-agent.conf
Normal file
23
akka-osgi/src/main/resources/akka-agent.conf
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
####################################
|
||||
# Akka Agent Reference Config File #
|
||||
####################################
|
||||
|
||||
# This is the reference config file that contains all the default settings.
|
||||
# Make your edits/overrides in your application.conf.
|
||||
|
||||
akka {
|
||||
agent {
|
||||
|
||||
# The dispatcher used for agent-send-off actor
|
||||
send-off-dispatcher {
|
||||
executor = thread-pool-executor
|
||||
type = PinnedDispatcher
|
||||
}
|
||||
|
||||
# The dispatcher used for agent-alter-off actor
|
||||
alter-off-dispatcher {
|
||||
executor = thread-pool-executor
|
||||
type = PinnedDispatcher
|
||||
}
|
||||
}
|
||||
}
|
||||
36
akka-osgi/src/main/resources/akka-camel.conf
Normal file
36
akka-osgi/src/main/resources/akka-camel.conf
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
####################################
|
||||
# Akka Camel Reference Config File #
|
||||
####################################
|
||||
|
||||
# This is the reference config file that contains all the default settings.
|
||||
# Make your edits/overrides in your application.conf.
|
||||
|
||||
akka {
|
||||
camel {
|
||||
# Whether JMX should be enabled or disabled for the Camel Context
|
||||
jmx = off
|
||||
# enable/disable streaming cache on the Camel Context
|
||||
streamingCache = on
|
||||
consumer {
|
||||
# Configured setting which determines whether one-way communications
|
||||
# between an endpoint and this consumer actor
|
||||
# should be auto-acknowledged or application-acknowledged.
|
||||
# This flag has only effect when exchange is in-only.
|
||||
auto-ack = on
|
||||
|
||||
# When endpoint is out-capable (can produce responses) reply-timeout is the
|
||||
# maximum time the endpoint can take to send the response before the message
|
||||
# exchange fails. This setting is used for out-capable, in-only,
|
||||
# manually acknowledged communication.
|
||||
reply-timeout = 1m
|
||||
|
||||
# The duration of time to await activation of an endpoint.
|
||||
activation-timeout = 10s
|
||||
}
|
||||
|
||||
#Scheme to FQCN mappings for CamelMessage body conversions
|
||||
conversions {
|
||||
"file" = "java.io.InputStream"
|
||||
}
|
||||
}
|
||||
}
|
||||
217
akka-osgi/src/main/resources/akka-cluster-experimental.conf
Normal file
217
akka-osgi/src/main/resources/akka-cluster-experimental.conf
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
######################################
|
||||
# Akka Cluster Reference Config File #
|
||||
######################################
|
||||
|
||||
# This is the reference config file that contains all the default settings.
|
||||
# Make your edits/overrides in your application.conf.
|
||||
|
||||
akka {
|
||||
|
||||
cluster {
|
||||
# Initial contact points of the cluster.
|
||||
# The nodes to join at startup if auto-join = on.
|
||||
# Comma separated full URIs defined by a string on the form of
|
||||
# "akka://system@hostname:port"
|
||||
# Leave as empty if the node should be a singleton cluster.
|
||||
seed-nodes = []
|
||||
|
||||
# how long to wait for one of the seed nodes to reply to initial join request
|
||||
seed-node-timeout = 5s
|
||||
|
||||
# Automatic join the seed-nodes at startup.
|
||||
# If seed-nodes is empty it will join itself and become a single node cluster.
|
||||
auto-join = on
|
||||
|
||||
# Should the 'leader' in the cluster be allowed to automatically mark
|
||||
# unreachable nodes as DOWN?
|
||||
# Using auto-down implies that two separate clusters will automatically be
|
||||
# formed in case of network partition.
|
||||
auto-down = off
|
||||
|
||||
# Minimum required number of members before the leader changes member status
|
||||
# of 'Joining' members to 'Up'. Typically used together with
|
||||
# 'Cluster.registerOnMemberUp' to defer some action, such as starting actors,
|
||||
# until the cluster has reached a certain size.
|
||||
min-nr-of-members = 1
|
||||
|
||||
# Enable or disable JMX MBeans for management of the cluster
|
||||
jmx.enabled = on
|
||||
|
||||
# how long should the node wait before starting the periodic tasks
|
||||
# maintenance tasks?
|
||||
periodic-tasks-initial-delay = 1s
|
||||
|
||||
# how often should the node send out gossip information?
|
||||
gossip-interval = 1s
|
||||
|
||||
# how often should the leader perform maintenance tasks?
|
||||
leader-actions-interval = 1s
|
||||
|
||||
# how often should the node move nodes, marked as unreachable by the failure
|
||||
# detector, out of the membership ring?
|
||||
unreachable-nodes-reaper-interval = 1s
|
||||
|
||||
# How often the current internal stats should be published.
|
||||
# A value of 0 s can be used to always publish the stats, when it happens.
|
||||
publish-stats-interval = 10s
|
||||
|
||||
# The id of the dispatcher to use for cluster actors. If not specified
|
||||
# default dispatcher is used.
|
||||
# If specified you need to define the settings of the actual dispatcher.
|
||||
use-dispatcher = ""
|
||||
|
||||
# Gossip to random node with newer or older state information, if any with
|
||||
# this probability. Otherwise Gossip to any random live node.
|
||||
# Probability value is between 0.0 and 1.0. 0.0 means never, 1.0 means always.
|
||||
gossip-different-view-probability = 0.8
|
||||
|
||||
# Limit number of merge conflicts per second that are handled. If the limit is
|
||||
# exceeded the conflicting gossip messages are dropped and will reappear later.
|
||||
max-gossip-merge-rate = 5.0
|
||||
|
||||
failure-detector {
|
||||
|
||||
# FQCN of the failure detector implementation.
|
||||
# It must implement akka.cluster.FailureDetector and
|
||||
# have constructor with akka.actor.ActorSystem and
|
||||
# akka.cluster.ClusterSettings parameters
|
||||
implementation-class = "akka.cluster.AccrualFailureDetector"
|
||||
|
||||
# how often should the node send out heartbeats?
|
||||
heartbeat-interval = 1s
|
||||
|
||||
# Number of member nodes that each member will send heartbeat messages to,
|
||||
# i.e. each node will be monitored by this number of other nodes.
|
||||
monitored-by-nr-of-members = 5
|
||||
|
||||
# defines the failure detector threshold
|
||||
# A low threshold is prone to generate many wrong suspicions but ensures
|
||||
# a quick detection in the event of a real crash. Conversely, a high
|
||||
# threshold generates fewer mistakes but needs more time to detect
|
||||
# actual crashes
|
||||
threshold = 8.0
|
||||
|
||||
# Minimum standard deviation to use for the normal distribution in
|
||||
# AccrualFailureDetector. Too low standard deviation might result in
|
||||
# too much sensitivity for sudden, but normal, deviations in heartbeat
|
||||
# inter arrival times.
|
||||
min-std-deviation = 100 ms
|
||||
|
||||
# Number of potentially lost/delayed heartbeats that will be
|
||||
# accepted before considering it to be an anomaly.
|
||||
# It is a factor of heartbeat-interval.
|
||||
# This margin is important to be able to survive sudden, occasional,
|
||||
# pauses in heartbeat arrivals, due to for example garbage collect or
|
||||
# network drop.
|
||||
acceptable-heartbeat-pause = 3s
|
||||
|
||||
# Number of samples to use for calculation of mean and standard deviation of
|
||||
# inter-arrival times.
|
||||
max-sample-size = 1000
|
||||
|
||||
# When a node stops sending heartbeats to another node it will end that
|
||||
# with this number of EndHeartbeat messages, which will remove the
|
||||
# monitoring from the failure detector.
|
||||
nr-of-end-heartbeats = 8
|
||||
|
||||
# When no expected heartbeat message has been received an explicit
|
||||
# heartbeat request is sent to the node that should emit heartbeats.
|
||||
heartbeat-request {
|
||||
# Grace period until an explicit heartbeat request is sent
|
||||
grace-period = 10 s
|
||||
|
||||
# After the heartbeat request has been sent the first failure detection
|
||||
# will start after this period, even though no heartbeat mesage has
|
||||
# been received.
|
||||
expected-response-after = 3 s
|
||||
|
||||
# Cleanup of obsolete heartbeat requests
|
||||
time-to-live = 60 s
|
||||
}
|
||||
}
|
||||
|
||||
metrics {
|
||||
# Enable or disable metrics collector for load-balancing nodes.
|
||||
enabled = on
|
||||
|
||||
# FQCN of the metrics collector implementation.
|
||||
# It must implement akka.cluster.cluster.MetricsCollector and
|
||||
# have constructor with akka.actor.ActorSystem parameter.
|
||||
# The default SigarMetricsCollector uses JMX and Hyperic SIGAR, if SIGAR
|
||||
# is on the classpath, otherwise only JMX.
|
||||
collector-class = "akka.cluster.SigarMetricsCollector"
|
||||
|
||||
# How often metrics are sampled on a node.
|
||||
# Shorter interval will collect the metrics more often.
|
||||
collect-interval = 3s
|
||||
|
||||
# How often a node publishes metrics information.
|
||||
gossip-interval = 3s
|
||||
|
||||
# How quickly the exponential weighting of past data is decayed compared to
|
||||
# new data. Set lower to increase the bias toward newer values.
|
||||
# The relevance of each data sample is halved for every passing half-life duration,
|
||||
# i.e. after 4 times the half-life, a data sample’s relevance is reduced to 6% of
|
||||
# its original relevance. The initial relevance of a data sample is given by
|
||||
# 1 – 0.5 ^ (collect-interval / half-life).
|
||||
# See http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average
|
||||
moving-average-half-life = 12s
|
||||
}
|
||||
|
||||
# If the tick-duration of the default scheduler is longer than the
|
||||
# tick-duration configured here a dedicated scheduler will be used for
|
||||
# periodic tasks of the cluster, otherwise the default scheduler is used.
|
||||
# See akka.scheduler settings for more details about the HashedWheelTimer.
|
||||
scheduler {
|
||||
tick-duration = 33ms
|
||||
ticks-per-wheel = 512
|
||||
}
|
||||
|
||||
# Netty blocks when sending to broken connections, and this circuit breaker
|
||||
# is used to reduce connect attempts to broken connections.
|
||||
send-circuit-breaker {
|
||||
max-failures = 3
|
||||
call-timeout = 2 s
|
||||
reset-timeout = 30 s
|
||||
}
|
||||
}
|
||||
|
||||
# Default configuration for routers
|
||||
actor.deployment.default {
|
||||
# MetricsSelector to use
|
||||
# - available: "mix", "heap", "cpu", "load"
|
||||
# - or: Fully qualified class name of the MetricsSelector class.
|
||||
# The class must extend akka.cluster.routing.MetricsSelector
|
||||
# and have a constructor with com.typesafe.config.Config
|
||||
# parameter.
|
||||
# - default is "mix"
|
||||
metrics-selector = mix
|
||||
}
|
||||
actor.deployment.default.cluster {
|
||||
# enable cluster aware router that deploys to nodes in the cluster
|
||||
enabled = off
|
||||
|
||||
# Maximum number of routees that will be deployed on each cluster
|
||||
# member node.
|
||||
# Note that nr-of-instances defines total number of routees, but
|
||||
# number of routees per node will not be exceeded, i.e. if you
|
||||
# define nr-of-instances = 50 and max-nr-of-instances-per-node = 2
|
||||
# it will deploy 2 routees per new member in the cluster, up to
|
||||
# 25 members.
|
||||
max-nr-of-instances-per-node = 1
|
||||
|
||||
# Defines if routees are allowed to be located on the same node as
|
||||
# the head router actor, or only on remote nodes.
|
||||
# Useful for master-worker scenario where all routees are remote.
|
||||
allow-local-routees = on
|
||||
|
||||
# Actor path of the routees to lookup with actorFor on the member
|
||||
# nodes in the cluster. E.g. "/user/myservice". If this isn't defined
|
||||
# the routees will be deployed instead of looked up.
|
||||
# max-nr-of-instances-per-node should not be configured (default value is 1)
|
||||
# when routees-path is defined.
|
||||
routees-path = ""
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
69
akka-osgi/src/main/resources/akka-file-mailbox.conf
Normal file
69
akka-osgi/src/main/resources/akka-file-mailbox.conf
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
#############################################
|
||||
# Akka File Mailboxes Reference Config File #
|
||||
#############################################
|
||||
|
||||
# This is the reference config file that contains all the default settings.
|
||||
# Make your edits/overrides in your application.conf.
|
||||
#
|
||||
# For more information see <https://github.com/robey/kestrel/>
|
||||
|
||||
akka {
|
||||
actor {
|
||||
mailbox {
|
||||
file-based {
|
||||
# directory below which this queue resides
|
||||
directory-path = "./_mb"
|
||||
|
||||
# attempting to add an item after the queue reaches this size (in items)
|
||||
# will fail.
|
||||
max-items = 2147483647
|
||||
|
||||
# attempting to add an item after the queue reaches this size (in bytes)
|
||||
# will fail.
|
||||
max-size = 2147483647 bytes
|
||||
|
||||
# attempting to add an item larger than this size (in bytes) will fail.
|
||||
max-item-size = 2147483647 bytes
|
||||
|
||||
# maximum expiration time for this queue (seconds).
|
||||
max-age = 0s
|
||||
|
||||
# maximum journal size before the journal should be rotated.
|
||||
max-journal-size = 16 MiB
|
||||
|
||||
# maximum size of a queue before it drops into read-behind mode.
|
||||
max-memory-size = 128 MiB
|
||||
|
||||
# maximum overflow (multiplier) of a journal file before we re-create it.
|
||||
max-journal-overflow = 10
|
||||
|
||||
# absolute maximum size of a journal file until we rebuild it,
|
||||
# no matter what.
|
||||
max-journal-size-absolute = 9223372036854775807 bytes
|
||||
|
||||
# whether to drop older items (instead of newer) when the queue is full
|
||||
discard-old-when-full = on
|
||||
|
||||
# whether to keep a journal file at all
|
||||
keep-journal = on
|
||||
|
||||
# whether to sync the journal after each transaction
|
||||
sync-journal = off
|
||||
|
||||
# circuit breaker configuration
|
||||
circuit-breaker {
|
||||
# maximum number of failures before opening breaker
|
||||
max-failures = 3
|
||||
|
||||
# duration of time beyond which a call is assumed to be timed out and
|
||||
# considered a failure
|
||||
call-timeout = 3 seconds
|
||||
|
||||
# duration of time to wait until attempting to reset the breaker during
|
||||
# which all calls fail-fast
|
||||
reset-timeout = 30 seconds
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
0
akka-osgi/src/main/resources/akka-osgi.conf
Normal file
0
akka-osgi/src/main/resources/akka-osgi.conf
Normal file
299
akka-osgi/src/main/resources/akka-remote.conf
Normal file
299
akka-osgi/src/main/resources/akka-remote.conf
Normal file
|
|
@ -0,0 +1,299 @@
|
|||
#####################################
|
||||
# Akka Remote Reference Config File #
|
||||
#####################################
|
||||
|
||||
# This is the reference config file that contains all the default settings.
|
||||
# Make your edits/overrides in your application.conf.
|
||||
|
||||
# comments about akka.actor settings left out where they are already in akka-
|
||||
# actor.jar, because otherwise they would be repeated in config rendering.
|
||||
|
||||
akka {
|
||||
|
||||
actor {
|
||||
|
||||
serializers {
|
||||
proto = "akka.remote.serialization.ProtobufSerializer"
|
||||
daemon-create = "akka.remote.serialization.DaemonMsgCreateSerializer"
|
||||
}
|
||||
|
||||
|
||||
serialization-bindings {
|
||||
# Since com.google.protobuf.Message does not extend Serializable but
|
||||
# GeneratedMessage does, need to use the more specific one here in order
|
||||
# to avoid ambiguity
|
||||
"com.google.protobuf.GeneratedMessage" = proto
|
||||
"akka.remote.DaemonMsgCreate" = daemon-create
|
||||
}
|
||||
|
||||
deployment {
|
||||
|
||||
default {
|
||||
|
||||
# if this is set to a valid remote address, the named actor will be
|
||||
# deployed at that node e.g. "akka://sys@host:port"
|
||||
remote = ""
|
||||
|
||||
target {
|
||||
|
||||
# A list of hostnames and ports for instantiating the children of a
|
||||
# non-direct router
|
||||
# The format should be on "akka://sys@host:port", where:
|
||||
# - sys is the remote actor system name
|
||||
# - hostname can be either hostname or IP address the remote actor
|
||||
# should connect to
|
||||
# - port should be the port for the remote server on the other node
|
||||
# The number of actor instances to be spawned is still taken from the
|
||||
# nr-of-instances setting as for local routers; the instances will be
|
||||
# distributed round-robin among the given nodes.
|
||||
nodes = []
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
remote {
|
||||
|
||||
### General settings
|
||||
|
||||
# Timeout after which the startup of the remoting subsystem is considered to be failed.
|
||||
# Increase this value if your transport drivers (see the enabled-transports section)
|
||||
# need longer time to be loaded.
|
||||
startup-timeout = 5 s
|
||||
|
||||
# Timout after which the graceful shutdown of the remoting subsystem is considered to be failed.
|
||||
# After the timeout the remoting system is forcefully shut down.
|
||||
# Increase this value if your transport drivers (see the enabled-transports section)
|
||||
# need longer time to stop properly.
|
||||
shutdown-timeout = 5 s
|
||||
|
||||
# Before shutting down the drivers, the remoting subsystem attempts to flush all pending
|
||||
# writes. This setting controls the maximum time the remoting is willing to wait before
|
||||
# moving on to shut down the drivers.
|
||||
flush-wait-on-shutdown = 2 s
|
||||
|
||||
# Reuse inbound connections for outbound messages
|
||||
use-passive-connections = on
|
||||
|
||||
# Dispatcher that the actors responsible to write to a connection will use.
|
||||
# The mailbox type must be always a DequeBasedMailbox.
|
||||
writer-dispatcher {
|
||||
mailbox-type = "akka.dispatch.UnboundedDequeBasedMailbox"
|
||||
}
|
||||
|
||||
# If enabled, an inbound connection is only considered to be live after the remote
|
||||
# system sent an explicit acknowledgement.
|
||||
# It is recommended to leave this setting on when connectionless transports (e.g. UDP)
|
||||
# are used.
|
||||
wait-activity-enabled = on
|
||||
|
||||
# Controls the backoff interval after a refused write is reattempted. (Transports may
|
||||
# refuse writes if their internal buffer is full)
|
||||
backoff-interval = 0.01 s
|
||||
|
||||
# Acknowledgment timeout of management commands sent to the transport stack.
|
||||
command-ack-timeout = 30 s
|
||||
|
||||
### Security settings
|
||||
|
||||
# Enable untrusted mode for full security of server managed actors, prevents
|
||||
# system messages to be send by clients, e.g. messages like 'Create',
|
||||
# 'Suspend', 'Resume', 'Terminate', 'Supervise', 'Link' etc.
|
||||
untrusted-mode = off
|
||||
|
||||
# Should the remote server require that its peers share the same
|
||||
# secure-cookie (defined in the 'remote' section)? Secure cookies are passed
|
||||
# between during the initial handshake. Connections are refused if the initial
|
||||
# message contains a mismatching cookie or the cookie is missing.
|
||||
require-cookie = off
|
||||
|
||||
# Generate your own with the script availbale in
|
||||
# '$AKKA_HOME/scripts/generate_config_with_secure_cookie.sh' or using
|
||||
# 'akka.util.Crypt.generateSecureCookie'
|
||||
secure-cookie = ""
|
||||
|
||||
### Logging
|
||||
|
||||
# If this is "on", Akka will log all inbound messages at DEBUG level,
|
||||
# if off then they are not logged
|
||||
log-received-messages = off
|
||||
|
||||
# If this is "on", Akka will log all outbound messages at DEBUG level,
|
||||
# if off then they are not logged
|
||||
log-sent-messages = off
|
||||
|
||||
# If this is "on", Akka will log all RemoteLifeCycleEvents at the level
|
||||
# defined for each, if off then they are not logged. Failures to deserialize
|
||||
# received messages also fall under this flag.
|
||||
log-remote-lifecycle-events = off
|
||||
|
||||
### Failure detection and recovery
|
||||
|
||||
# how often should keep-alive heartbeat messages sent to connections.
|
||||
heartbeat-interval = 1 s
|
||||
|
||||
# Settings for the Phi accrual failure detector (http://ddg.jaist.ac.jp/pub/HDY+04.pdf
|
||||
# [Hayashibara et al]) used by the remoting subsystem to detect failed connections.
|
||||
failure-detector {
|
||||
# defines the failure detector threshold
|
||||
# A low threshold is prone to generate many wrong suspicions but ensures
|
||||
# a quick detection in the event of a real crash. Conversely, a high
|
||||
# threshold generates fewer mistakes but needs more time to detect
|
||||
# actual crashes
|
||||
threshold = 7.0
|
||||
|
||||
# Number of the samples of inter-heartbeat arrival times to adaptively
|
||||
# calculate the failure timeout for connections.
|
||||
max-sample-size = 100
|
||||
|
||||
# Minimum standard deviation to use for the normal distribution in
|
||||
# AccrualFailureDetector. Too low standard deviation might result in
|
||||
# too much sensitivity for sudden, but normal, deviations in heartbeat
|
||||
# inter arrival times.
|
||||
min-std-deviation = 100 ms
|
||||
|
||||
# Number of potentially lost/delayed heartbeats that will be
|
||||
# accepted before considering it to be an anomaly.
|
||||
# It is a factor of heartbeat-interval.
|
||||
# This margin is important to be able to survive sudden, occasional,
|
||||
# pauses in heartbeat arrivals, due to for example garbage collect or
|
||||
# network drop.
|
||||
acceptable-heartbeat-pause = 3 s
|
||||
}
|
||||
|
||||
# After failed to establish an outbound connection, the remoting will mark the
|
||||
# address as failed. This configuration option controls how much time should
|
||||
# be elapsed before reattempting a new connection. While the address is
|
||||
# gated, all messages sent to the address are delivered to dead-letters.
|
||||
# If this setting is 0, the remoting will always immediately reattempt
|
||||
# to establish a failed outbound connection and will buffer writes until
|
||||
# it succeeds.
|
||||
retry-gate-closed-for = 0 s
|
||||
|
||||
# If the retry gate function is disabled (see retry-gate-closed-for) the
|
||||
# remoting subsystem will always attempt to reestablish failed outbound
|
||||
# connections. The settings below together control the maximum number of
|
||||
# reattempts in a given time window. The number of reattempts during
|
||||
# a window of "retry-window" will be maximum "maximum-retries-in-window".
|
||||
retry-window = 3 s
|
||||
maximum-retries-in-window = 5
|
||||
|
||||
### Transports and adapters
|
||||
|
||||
# List of the transport drivers that will be loaded by the remoting.
|
||||
# A list of fully qualified config paths must be provided where
|
||||
# the given configuration path contains a transport-class key
|
||||
# pointing to an implementation class of the Transport interface.
|
||||
# If multiple transports are provided, the address of the first
|
||||
# one will be used as a default address.
|
||||
enabled-transports = ["akka.remote.netty.tcp"]
|
||||
|
||||
# Transport drivers can be augmented with adapters by adding their
|
||||
# name to the applied-adapters setting in the configuration of a
|
||||
# transport. The available adapters should be configured in this
|
||||
# section by providing a name, and the fully qualified name of
|
||||
# their corresponding implementation
|
||||
adapters {
|
||||
gremlin = "akka.remote.transport.FailureInjectorProvider"
|
||||
trttl = "akka.remote.transport.ThrottlerProvider"
|
||||
}
|
||||
|
||||
### Default configuration for the Netty based transport drivers
|
||||
|
||||
netty.tcp {
|
||||
transport-class = "akka.remote.transport.netty.NettyTransport"
|
||||
|
||||
# Transport drivers can be augmented with adapters by adding their
|
||||
# name to the applied-adapters list. The last adapter in the
|
||||
# list is the adapter immediately above the driver, while
|
||||
# the first one is the top of the stack below the standard
|
||||
# Akka protocol
|
||||
applied-adapters = []
|
||||
|
||||
transport-protocol = tcp
|
||||
|
||||
# The default remote server port clients should connect to.
|
||||
# Default is 2552 (AKKA), use 0 if you want a random available port
|
||||
# This port needs to be unique for each actor system on the same machine.
|
||||
port = 2552
|
||||
|
||||
# The hostname or ip to bind the remoting to,
|
||||
# InetAddress.getLocalHost.getHostAddress is used if empty
|
||||
hostname = ""
|
||||
|
||||
# Enables SSL support on this transport
|
||||
enable-ssl = false
|
||||
|
||||
# Sets the connectTimeoutMillis of all outbound connections,
|
||||
# i.e. how long a connect may take until it is timed out
|
||||
connection-timeout = 120s
|
||||
|
||||
# If set to "<id.of.dispatcher>" then the specified dispatcher
|
||||
# will be used to accept inbound connections, and perform IO. If "" then
|
||||
# dedicated threads will be used.
|
||||
use-dispatcher-for-io = ""
|
||||
|
||||
# Sets the high water mark for the in and outbound sockets,
|
||||
# set to 0b for platform default
|
||||
write-buffer-high-water-mark = 0b
|
||||
|
||||
# Sets the low water mark for the in and outbound sockets,
|
||||
# set to 0b for platform default
|
||||
write-buffer-low-water-mark = 0b
|
||||
|
||||
# Sets the send buffer size of the Sockets,
|
||||
# set to 0b for platform default
|
||||
send-buffer-size = 32000b
|
||||
|
||||
# Sets the receive buffer size of the Sockets,
|
||||
# set to 0b for platform default
|
||||
receive-buffer-size = 32000b
|
||||
|
||||
# Sets the size of the connection backlog
|
||||
backlog = 4096
|
||||
|
||||
# Used to configure the number of I/O worker threads on server sockets
|
||||
server-socket-worker-pool {
|
||||
# Min number of threads to cap factor-based number to
|
||||
pool-size-min = 2
|
||||
|
||||
# The pool size factor is used to determine thread pool size
|
||||
# using the following formula: ceil(available processors * factor).
|
||||
# Resulting size is then bounded by the pool-size-min and
|
||||
# pool-size-max values.
|
||||
pool-size-factor = 1.0
|
||||
|
||||
# Max number of threads to cap factor-based number to
|
||||
pool-size-max = 8
|
||||
}
|
||||
|
||||
# Used to configure the number of I/O worker threads on client sockets
|
||||
client-socket-worker-pool {
|
||||
# Min number of threads to cap factor-based number to
|
||||
pool-size-min = 2
|
||||
|
||||
# The pool size factor is used to determine thread pool size
|
||||
# using the following formula: ceil(available processors * factor).
|
||||
# Resulting size is then bounded by the pool-size-min and
|
||||
# pool-size-max values.
|
||||
pool-size-factor = 1.0
|
||||
|
||||
# Max number of threads to cap factor-based number to
|
||||
pool-size-max = 8
|
||||
}
|
||||
}
|
||||
|
||||
netty.udp = ${akka.remote.netty.tcp}
|
||||
netty.udp {
|
||||
transport-protocol = udp
|
||||
}
|
||||
|
||||
netty.ssl = ${akka.remote.netty.tcp}
|
||||
netty.ssl = {
|
||||
enable-ssl = true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
13
akka-osgi/src/main/resources/akka-transactor.conf
Normal file
13
akka-osgi/src/main/resources/akka-transactor.conf
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#########################################
|
||||
# Akka Transactor Reference Config File #
|
||||
#########################################
|
||||
|
||||
# This is the reference config file that contains all the default settings.
|
||||
# Make your edits/overrides in your application.conf.
|
||||
|
||||
akka {
|
||||
transactor {
|
||||
# The timeout used for coordinated transactions across actors
|
||||
coordinated-timeout = 5s
|
||||
}
|
||||
}
|
||||
26
akka-osgi/src/main/resources/akka-zeromq.conf
Normal file
26
akka-osgi/src/main/resources/akka-zeromq.conf
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#####################################
|
||||
# Akka ZeroMQ Reference Config File #
|
||||
#####################################
|
||||
|
||||
# This is the reference config file that contains all the default settings.
|
||||
# Make your edits/overrides in your application.conf.
|
||||
|
||||
akka {
|
||||
|
||||
zeromq {
|
||||
|
||||
# The default timeout for a poll on the actual zeromq socket.
|
||||
poll-timeout = 100ms
|
||||
|
||||
# Timeout for creating a new socket
|
||||
new-socket-timeout = 5s
|
||||
|
||||
socket-dispatcher {
|
||||
# A zeromq socket needs to be pinned to the thread that created it.
|
||||
# Changing this value results in weird errors and race conditions within
|
||||
# zeromq
|
||||
executor = thread-pool-executor
|
||||
type = "PinnedDispatcher"
|
||||
}
|
||||
}
|
||||
}
|
||||
9
akka-osgi/src/main/resources/reference.conf
Normal file
9
akka-osgi/src/main/resources/reference.conf
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
include "akka-actor.conf"
|
||||
include "akka-agent.conf"
|
||||
include "akka-camel.conf"
|
||||
include "akka-cluster-experimental.conf"
|
||||
include "akka-file-mailbox.conf"
|
||||
include "akka-osgi.conf"
|
||||
include "akka-remote.conf"
|
||||
include "akka-transactor.conf"
|
||||
include "akka-zeromq.conf"
|
||||
Loading…
Add table
Add a link
Reference in a new issue