本文整理汇总了Scala中kafka.common.OffsetMetadataAndError类的典型用法代码示例。如果您正苦于以下问题:Scala OffsetMetadataAndError类的具体用法?Scala OffsetMetadataAndError怎么用?Scala OffsetMetadataAndError使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了OffsetMetadataAndError类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: OffsetAndMetadata
//设置package包名称以及导入依赖的类
package com.box.castle.router.messages
import kafka.common.OffsetMetadataAndError
import OffsetAndMetadata.ConsumerMetadataPrefix
case class OffsetAndMetadata(offset: Long, metadata: Option[String] = None) {
def asKafkaOffsetMetadataAndError: OffsetMetadataAndError = {
metadata match {
case Some(consumerMetadata) => OffsetMetadataAndError(offset, ConsumerMetadataPrefix + consumerMetadata)
case None => OffsetMetadataAndError(offset)
}
}
}
//@TODO add test case
object OffsetAndMetadata {
val ConsumerMetadataPrefix = "V1|CONSUMER_METADATA"
def apply(kafkaOffsetMetadataAndError: OffsetMetadataAndError):OffsetAndMetadata = {
val consumerMetadata = if(kafkaOffsetMetadataAndError.metadata.startsWith(ConsumerMetadataPrefix)) {
//Only fill in the metadata if the raw metadata(read from kafka) starts with the prefix, which means
//it's managed by castle
Some(kafkaOffsetMetadataAndError.metadata.substring(ConsumerMetadataPrefix.length))
} else {
None
}
OffsetAndMetadata(kafkaOffsetMetadataAndError.offset, consumerMetadata)
}
}