我想在我的应用程序中使用hazelcast-jet,因为在我的例子中,kafka分区的数量是有限的。我如何理解喷射-卡夫卡并行并不取决于卡夫卡分区,这将是很好的解释,如何实现喷气卡夫卡独立于卡夫卡分区的数目。
但我的问题是,当事件处理程序无法序列化时,如何处理jet中的事件。例如,我找到了一个解决方案--使用map接收器并将本地事件侦听器添加到此映射中,但对我来说,这似乎是一根拐杖,因为我不需要将这些事件存储在map中。在这种方案中,将地图大小设置为零是可能的吗?
而且,我在docs中看到了一种新型的接收器--可观察的,它似乎是我想要的,但是可观察的听者不能只获得本地条目,对我来说,它是不合适的。
你能帮我找到正确的解决办法吗?还是哈泽尔卡夫卡在这种情况下不是个好选择?
发布于 2020-11-22 10:50:03
,很高兴找到解释jet如何实现独立于卡夫卡分区数量的解释。
一个Jet线程可以处理任意数量的分区,因此很容易实现这种独立性。Jet只是在所有Kafka连接器线程之间公平地分配所有分区。
,但我的问题是,当事件处理程序无法序列化时,如何处理jet中的事件。
Hazelcast Jet不要求您的事件处理程序可以序列化。如果需要有状态处理程序,则必须提供一个创建状态对象的函数。函数必须是可序列化的,但状态不一定是可序列化的。如果您只想要一个无状态映射函数,它必须是可序列化的,但通常没有问题。
如果您收到一个错误,说明一个函数是不可序列化的,这可能是由于捕获比lambda实际需要的更多状态的常见缺陷造成的。在这种情况下,您应该展示您的代码。
https://stackoverflow.com/questions/64952553
复制相似问题