java - Spring Cloud Streams 将数据有条件地转发到 Kafka 主题
问题描述
我正在尝试根据一些评估将数据发送到不同的主题。我正在使用弹簧云流和卡夫卡
我怎样才能有条件地转发到 kafka 主题。我需要在我专门评论的地方插入SCS-kafka相关代码。
谢谢你。
@EnableBinding(Sink.class)
public class SampleSink {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private SomeService someService;
@ServiceActivator(inputChannel = Sink.INPUT)
public void processor(Message<?> message1) {
EvaluateData evaluateData = someService.evaluateData(message1);
String Result = String.valueOf(evaluateData.getResult());
try {
if(validationResult.equalsIgnoreCase("allgood")){
//Send message1 to Topic1
}
else if (validationResult.equalsIgnoreCase("notgood")){
new SomeException("topic1");
//向topic2发送数据
}
else {
throw new SomeException("topic3");
}
}
catch (SomeException e){
//something
//分别向topic2和3发送数据 }
}
}
解决方案
您要做的基本上是一个路由器,我们已经作为开箱即用的应用程序提供了它。它基本上是一个路由器接收器,它将根据您通过配置指定的条件路由消息。请在此处查看更多信息
推荐阅读
- c# - 部署到 SSRS c# 中的目标文件夹时未创建子文件夹
- python - 在light gbm中使用f1 score作为评价指标
- laravel - 在 Laravel 中访问图像文件夹的问题
- r - 带有 RenderUI 的 selectInput 不显示所有选择
- c# - Webview 未从第二页加载
- postgresql - PL/pgSQL - 如何使用变量在 PostgresQL 中动态设置列大小?
- reactjs - 没有在反应中使用 Axios 获取图像
- javascript - 我无法将输入值从 html 传递到视图
- tkinter - Tkinter 窗口标题显示无效(??????)字符
- angular - Angular迭代并创建新行