Chunked messages in reliable delivery, #24276 (#28915)

* To avoid head of line blocking from serialization and transfer of large messages
  this can be enabled.
* ProducerController setting to chunk messages
* split up large messages in chunks in ProducerController
  and assemble again in ConsumerController
* serialization moved to these actors instead of in the Artery stream
* other messages (for other actors) can interleave with the chunks
* serializer for ChunkedMessage in SequencedMessage and MessageSent
* cleanup partially stored chunked messages
* reference docs
* mima filters
* additional test for sending the Request after half window size
* enforce that chunk-large-messages=off for sharding and work-pulling
This commit is contained in:
Patrik Nordwall 2020-09-07 14:02:52 +02:00 committed by GitHub
parent d5bb125ae0
commit a548949143
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
37 changed files with 1916 additions and 243 deletions

View file

@ -5,8 +5,6 @@
package docs.persistence
import java.io.NotSerializableException
import scala.language.reflectiveCalls
import java.nio.charset.Charset
import akka.actor.ActorSystem
@ -16,8 +14,8 @@ import akka.testkit.TestKit
import com.typesafe.config._
import org.scalatest.wordspec.AnyWordSpec
import spray.json.JsObject
import scala.concurrent.duration._
import docs.persistence.proto.FlightAppModels
class PersistenceSchemaEvolutionDocSpec extends AnyWordSpec {
@ -284,7 +282,7 @@ class RemovedEventsAwareSerializer extends SerializerWithStringManifest {
case m if SkipEventManifestsEvents.contains(m) =>
EventDeserializationSkipped
case other => new String(bytes, utf8)
case _ => new String(bytes, utf8)
}
}
//#string-serializer-skip-deleved-event-by-manifest