小编Eri*_*ten的帖子

如何在Scala中使用默认值弃用参数?

在metrics-scala库中,我们有以下方法:

def timer(name: String, scope: String = null): Timer
Run Code Online (Sandbox Code Playgroud)

我想弃用scope参数并将其从下一个主要版本中删除.

我试过这个:

def timer(name: String): Timer
@deprecated(...)
def timer(name: String, scope: String): Timer
Run Code Online (Sandbox Code Playgroud)

但这导致当前主要版本中已存在二进制向后兼容性问题(见下文*).

我也试过这个:

def timer(name: String, @deprecated(...) scope: String = null): Timer
Run Code Online (Sandbox Code Playgroud)

但是这会在内部发出警告timer,而不是对呼叫者发出警告timer.

我是否遗漏了某些内容,或者是否真的无法使用默认值弃用参数?

(*)选项1的Mima报告:

sbt:metrics4-scala-root> mimaReportBinaryIssues
[error]  * synthetic method timer$default$2()java.lang.String in class nl.grons.metrics4.scala.MetricBuilder does not have a correspondent in current version
[error]    filter with: ProblemFilters.exclude[DirectMissingMethodProblem]("nl.grons.metrics4.scala.MetricBuilder.timer$default$2")
Run Code Online (Sandbox Code Playgroud)

scala

6
推荐指数
1
解决办法
89
查看次数

Aeron 可以处理的最大消息是什么?

Aeron可以处理的最大消息真实逻辑的大小是多少?

我意识到 Aeron 适合处理小消息,但是我希望在我们的堆栈中有一个单一的协议,并且我们的一些消息很容易达到 100Mb 的大小。

文档不清楚哪些设置会影响这个问题的答案。我担心的是默认缓冲区设置不允许这种大小的消息。或者缓冲区设置对最大应用程序消息大小没有影响吗?

network-programming aeron

5
推荐指数
1
解决办法
1060
查看次数

如何清理Flink流状态为非活动密钥?

我的目标是建立一个Flink流程序来保存最后的N ID,其中id是从事件中提取的.接收器是Cassandra存储器,因此可以随时获取id列表.重要的是Cassandra会在每次活动后立即更新.

这可以很容易地实现mapWithState(参见下面的代码).但是,此代码存在重要问题.国家是关键userid.有些用户可能会活动一段时间,然后再也不会.我担心的是状态存储将永远增长.

如何清除非活动密钥的状态?

case class MyEvent(userId: Int, id: String)

env
  .addSource(new FlinkKafkaConsumer010[MyEvent]("vips", new MyJsonDeserializationSchema(), kafkaConsumerProperties))
  .keyBy(_.userId)
  .mapWithState[(Int, Seq[String]), Seq[String]] { (in: MyEvent, currentIds: Option[Seq[String]]) =>
    val keepNIds = currentIds match {
      case None => Seq(in.id)
      case Some(cids) => (cids :+ in.id).takeRight(100)
    }
    ((in.userId, keepNIds), Some(keepNIds))
  }
  .addSink { in: (Int, Seq[String]) =>
    CassandraSink.appDatabase.idsTable.store(...)
  }
Run Code Online (Sandbox Code Playgroud)

apache-flink flink-streaming

4
推荐指数
1
解决办法
1151
查看次数