class ShardingService[Req, Rep] extends Service[Req, Rep]
ShardingService takes a Distributor
where the handle is a service.
It uses the distributor to distribute requests *only* when the hash function returns Some[Long].
If None is returned, it throws NotShardableException
.
If the underlying service for a particular shard is not available, NotServableException
is thrown.
Example:
val serviceFactory =
KetamaShardingServiceBuilder()
.nodes(services) // services is of type Seq[(String, Service[Req,Rep])]
.withHash { req => Some(hashCodeOfSomething)}
.buildFactory()
val service = serviceFactory()
service(req) // where req is a Req and may have ShardableRequest mixed in
- Alphabetic
- By Inheritance
- ShardingService
- Service
- Closable
- Function1
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def andThen[A](g: (Future[Rep]) => A): (Req) => A
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- def apply(request: Req): Future[Rep]
This is the method to override/implement to create your own Service.
This is the method to override/implement to create your own Service.
- Definition Classes
- ShardingService → Service → Function1
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def close(deadline: Time): Future[Unit]
- Definition Classes
- ShardingService → Service → Closable
- def close(after: Duration): Future[Unit]
- Definition Classes
- Closable
- final def close(): Future[Unit]
- Definition Classes
- Closable
- def compose[A](g: (A) => Req): (A) => Future[Rep]
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isAvailable: Boolean
Determines whether this
Service
is available (can accept requests with a reasonable likelihood of success).Determines whether this
Service
is available (can accept requests with a reasonable likelihood of success).- Definition Classes
- Service
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def map[Req1](f: (Req1) => Req): Service[Req1, Rep]
- Definition Classes
- Service
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def status: Status
The current availability Status of this
Service
.The current availability Status of this
Service
.- Definition Classes
- ShardingService → Service
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- Service → Function1 → AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()