Apache kafka 面向块的处理或Tasklet
这项工作包括:Apache kafka 面向块的处理或Tasklet,apache-kafka,spring-batch,Apache Kafka,Spring Batch,这项工作包括: 使用来自Kafka REST客户端的电子邮件列表(这是 限制,我们不能使用本机java客户端) 从Base64解码内容 将其存储在数据库中(通过电子邮件记录) 我不确定我是否可以/应该将其实现为一个面向块的过程,还是将其保持为一个简单的Tasklet 我已经把它作为一个小任务来做了,所以我想知道它是否可能以另一种方式实现,以及它是否有任何好处 这是我从REST客户端消费的内容 [ { "value": "base64encoded" }, { "val
[
{
"value": "base64encoded"
},
{
"value": "base64encoded"
},
...
]
其中编码值是电子邮件地址数组[“item1”、“item2”]
由于内容是字符串数组,我在自定义ItemReader
的read()
方法上返回一个List
,但我认为这不对,因为它应该返回一个项,不是吗
我也在读卡器上解码,还是应该在ItemProcessor上解码
作为一名编写者,我选择了seed
jdbccbatchitemwriter
,但我不确定应该如何配置它 我会从一个问题开始评估,如果出现问题会发生什么?Spring Batch通过侦听器、重试和跳过机制等提供了许多处理错误的工具。其中大多数都无法通过原始的Tasklet
实现。其次,如果您正在进行基于项的处理(也就是一次迭代一个项),即使您正在添加并行性,我仍然建议使用基于块的处理。只有在经历了这两种想法之后,我会考虑做一个原始的<代码> taskLe> /Case>实现。我在这里看到的主要问题是,我不能在读取一个调用中的所有内容时将读取过程块化。这并不意味着你不能将它块化……这只是意味着你在启动时读取一次,并将其块化,因为每次调用到“代码> Read())/CODE >被调用。