kafka版本1.1
我们使用Kafka KStream根据事件本身中选定的键聚合事件。大致低于它的作用
KStream[String, Event]
.selectKey[String]({ (_, event) =>
aggregationKey(event)
}
.groupByKey()
.aggregate(
() => {
Event("", "")
},
(k: Any, event: Event, aggregate: Event) => aggregator(k, event, aggregate, inputTopicName),
Materialized
.as[String, Event, KeyValueStore[Bytes, Array[Byte]]]("store-name")
.withValueSerde(protoSerde)
)
.toStream
.to(outTopicName)
在“聚合器”函数中,我在一定条件下返回空值,以产生墓碑事件。
kafka创建两个主题,重新分区和变更。在重新分区主题中保留设置为-1。不管墓碑事件如何,这些主题都在继续增长。我找不到清理它们的方法。
我们的要求是直截了当的:
只要满足密钥的条件,该密钥的聚合更改日志就没有用处。我们希望彻底永久地清除该密钥的所有事件
请建议如何清理kstream内部主题的基础上的关键?非常感谢。
上游重新分区主题不应该不受限制地增长:因为您注意到保留时间设置为-1
(以避免数据丢失)。但是,在处理记录后,KafkaStreams会显式清除该主题。
此外,如果您从您的Aggregator
返回null
,相应的条目将在KTable
存储中删除,墓碑将被发送到变更日志主题并发送到下游。当然,墓碑也首先附加到主题,只有当代理方主题压缩运行时,旧记录才会被“垃圾收集”。
一个与主题压缩有关的问题。在压缩主题中,当日志清理器在清理特定键的以前偏移量(3,4,5)时出现延迟(假设5是最新的偏移量),而作为使用者使用这些偏移量时,即使3和4还没有压缩,我会只看到该键的最新偏移量(5)吗?还是使用者将按照该顺序获得(3,4,5)?
我需要从其他项目模块中提取包含变更集作为maven依赖项的changelog文件。我需要在当前项目中包含其他项目的主变更日志文件(它引用了其中的所有变更集),我将在该文件中执行maven liquibase更新/回滚或spring boot liuqibase设置。有没有办法让它奏效? 但我在设置或运行LiquiBase时出错:LiquiBase.Exception.SetupException:
项目所有的主要更新都将记录在本文档中。 [Unreleased] 优化拷贝 npm 模块链路 支持 createRef renderProps 支持 支持 forwardRef useImperativeHandle 支持基于 Kbone 的运行时方案 2019-12-19 Added 支持 withRouter Fixed 修复 JSX 参数绑定的问题 Changed 用户在 tabBar.it
升级 使用 pip 升级 MkDocs 到最新版: pip install -U mkdocs 查看当前安装的版本使用 pip freeze: pip freeze | grep mkdocs 0.11.1 (2014-11-20) 修复: Fix a CSS wrapping issue with code highlighting in the ReadTheDocs theme. (
CatLib的版本标准是采用:Semver语义化版本标准 摘要 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译信息可以加到主版本号.次版本号.修订号的后面,作为延伸。 v2.0.0 (unreleased) Added Inject allo
2.10.3 (2021-07-30) 修复 video url 解析 修复 scrollIntoView 跳动 修复 require wxs 失效 修复自定义组件 class 为数组报错 修复 input 设置值为 null 时错误显示 优化 udpSocket 实现 优化渲染逻辑 2.10.2 (2021-07-20) 修复 slot 渲染逻辑 2.10.1 (2021-07-16) 优化 i