Kafka用例:从Kafka(可能是流)连续读取,使用Java方法对消息值执行解密,然后插入到db(接收器连接器,或者我有Java REST API,可以在需要时插入到db)
由于这个原因,我没有看到任何可行的解决方案:
我无法在kafka中存储解密的数据。
在插入数据库之前,我需要执行解密步骤。
查看Kafka Connect和Kafka Streams以解决用例:
似乎我不能使用Kafka Connect,因为我看不到如何包括解密步骤。
我似乎不能使用Kafka Streams,因为1.它是为读取和写回主题而构建的。 2.即使我使用Processor API来实现自定义逻辑,也看不到如何将KStream
消息值转换为String
并可以传递给Java解密方法或数据库的方法。
我有一个解决方案,该解决方案在Java应用程序中使用常规的Kafka Consumer,但它是批处理一项工作,我需要一个寿命很长的应用程序,并不断检查Kafka队列。我可以无限循环遍历批处理作业,但是我不确定这是一个可行的选择。
如何完成该用例? Spark不是我们的选择。
答案 0 :(得分:0)
您应该使用Kafka Connect并通过实现Transformation
接口来编写自定义SMT:
查看此演讲以获取更多详细信息:https://www.confluent.io/thank-you/single-message-transformations-not-transformations-youre-looking/