com.twitter.finagle.thrift.exp.partitioning
MethodBuilderCustomStrategy
Companion object MethodBuilderCustomStrategy
final class MethodBuilderCustomStrategy[Req <: ThriftStructIface, Rep] extends CustomPartitioningStrategy
An API to set a custom partitioning strategy for a client MethodBuilder.
- Alphabetic
- By Inheritance
- MethodBuilderCustomStrategy
- CustomPartitioningStrategy
- PartitioningStrategy
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new MethodBuilderCustomStrategy(getPartitionIdAndRequest: ToPartitionedMap[Req], responseMerger: Option[ResponseMerger[Rep]])
- new MethodBuilderCustomStrategy(getPartitionIdAndRequest: ToPartitionedMap[Req])
- new MethodBuilderCustomStrategy(getPartitionIdAndRequest: ToPartitionedMap[Req], getLogicalPartitionId: (Int) ⇒ Seq[Int])
-
new
MethodBuilderCustomStrategy(getPartitionIdAndRequest: ToPartitionedMap[Req], getLogicalPartitionId: (Int) ⇒ Seq[Int], responseMerger: Option[ResponseMerger[Rep]])
- getPartitionIdAndRequest
A function for the partitioning logic. MethodBuilder is customized per-method so that this method only takes one Thrift request type.
- getLogicalPartitionId
Gets the logical partition identifiers from a host identifier, host identifiers are derived from ZkMetadata shardId. Indicates which logical partitions a physical host belongs to, multiple hosts can belong to the same partition, and one host can belong to multiple partitions, for example:
val getLogicalPartition: Int => Seq[Int] = { case a if Range(0, 10).contains(a) => Seq(0, 1) case b if Range(10, 20).contains(b) => Seq(1) case c if Range(20, 30).contains(c) => Seq(2) case _ => throw ... }
If not provided, the default is that each instance is its own partition.
- responseMerger
Supplies a ResponseMerger for messaging fan-out. Non-fan-out case the default is None.
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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- val getPartitionIdAndRequest: ToPartitionedMap[Req]
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
newNodeManager[U, T](underlying: Stack[ServiceFactory[U, T]], params: Params): PartitionNodeManager[U, T, _, ToPartitionedMap]
- Definition Classes
- MethodBuilderCustomStrategy → CustomPartitioningStrategy
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val responseMerger: Option[ResponseMerger[Rep]]
-
val
responseMergerRegistry: ResponseMergerRegistry
A ResponseMergerRegistry implemented by client to supply ResponseMergers for message fan-out cases.
A ResponseMergerRegistry implemented by client to supply ResponseMergers for message fan-out cases.
- Definition Classes
- CustomPartitioningStrategy
- See also
ResponseMerger
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()