当前位置: 首页 > 知识库问答 >
问题:

Apache Flink RocksDB状态管理

涂选
2023-03-14

我在同一份flink jobs中读了两个Kafka主题。

  • Stream1:来自第一个主题的消息被保存到rocksdb,然后它将与Stream2联合。
  • Stream2:来自第二个主题的消息被Stream1保存的状态所丰富,然后它将与Stream1联合。

主题1和主题2是不同的来源,但两个来源的输出基本相同。我必须用topic1的数据来充实topic2的数据。

这里是流动;

val stream1 = readKafkaTopic1().keyBy(_.memberId).map(saveMemberDetailsToRocksDB)
val stream2 = readKafkaTopic2().keyBy(_.memberId).map(readMemberDetailsAndEnrich)
stream1.union(stream2).addSink(kafkaProducer)

这里是问题;

  1. 那个流量好吗?
  2. 可以Streu2访问由Streu1保存的相同memberId的状态吗?

共有1个答案

颜熙云
2023-03-14

似乎您应该能够通过使用KeyedCoProcessFunction实现您想要的目标。这或多或少是这样的:

stream1
.keyBy(_.memberId)
.connect(stream2.keyBy(_.memberId))
.process(new CustomKeyedCoProcessFunction())

通过这种方式,您可以将状态保持在单个键控协处理函数中,这样您就可以访问stream1stream2的状态。

因此,对于processElement1您可以在map中为stream1执行相同的操作,而在processElement2中,您可以在map中为stream2执行相同的操作。

 类似资料:
  • 来自服务器的数据以及是否挂起或导致错误 UI状态如切换,警报和错误消息 自定义主题,凭据和本地化 许多其他类型的状态 Redux using ng2-redux Angular Services and RxJS(推荐)

  • 管理应用程序状态是个难题。您需要在多个后端,Web workers和UI组件之间进行协调。 像Redux和Flux这样的模式旨在通过使这种协调更加明确来解决这个问题。在本文中,我将展示如何使用RxJS在几行代码中实现类似的模式。然后我将展示如何使用这种模式来实现一个简单的Angular 2应用。 在谈论架构模式时,我喜欢从描述其核心属性开始。你可以写在餐巾背上的东西。The devil, of c

  • 建议使用基于redux封装出来的rematch, anujs也自带了这个框架。 rematch的官网 https://github.com/rematch/rematch resolve: { alias: { react: "anujs", "react-dom": "anujs", rematch: "anujs/dist/Rematch.js

  • 属性是用于标识您的应用程序的操作的唯一字符串。 使用lisp-case(例如)是一个常见的惯例,但是只要在整个项目中是一致的,您可以随意使用任何写法。 示例: 为了简化操作创建,您可以创建一个工厂函数来处理应用程序中重复的部分: 由此产生的创建操作变得更加简洁和干净:

  • Mpx 参考 vuex 设计实现了外部状态管理系统(store),其中的概念与 api 与 vuex 保持一致,为了更好地支持状态模块管理和跨团队合作场景,我们提出多实例 store 作为 vuex 中 modules 的替代方案,该方案在模块拆分及合并上的灵活性远高于 modules。 介绍 Store 是一个全局状态管理容器,能够轻松实现复杂场景下的组件通信需求,store 与简单的全局状态对

  • 类 Flux 状态管理的官方实现 由于多个状态分散的跨越在许多组件和交互间各个角落,大型应用复杂度也经常逐渐增长。为了解决这个问题,Vue 提供 vuex: 我们有受到 Elm 启发的状态管理库。vuex 甚至集成到 vue-devtools,无需配置即可访问时光旅行。 React 的开发者请参考以下信息 如果你是来自 React 的开发者,你可能会对 vuex 和 redux 间的差异表示关注,

  • 无状态管道是纯粹的功能,通过输入数据流动而不记住任何东西或引起可检测的副作用。 大多数管道是无状态的。 我们使用的CurrencyPipe和我们创建的长度管是无状态管的示例。 状态管道是能够管理它们转换的数据的状态的管道。 创建HTTP请求,存储响应并显示输出的管道是有状态的管道。 有状态管道应谨慎使用。 Angular 2提供 ,这是有状态的。 View Example 实现有状态管道 // n

  • 超文本传输​​协议(HTTP)是一种无状态协议。 当客户端与服务器断开连接时,ASP.NET引擎会丢弃页面对象。 这样,每个Web应用程序都可以向上扩展以同时处理大量请求,而不会耗尽服务器内存。 但是,需要一些技术来在请求之间存储信息并在需要时检索它。 此信息,即当前会话中当前用户的所有控件和变量的当前值称为State。 ASP.NET管理四种类型的状态: 查看状态 控制状态 会话状态 申请国 查