Flowable业务处理之KAFKA EVENTS(下)

Flowable业务处理KAFKA EVENTS(下)

 

自定义情感分析(客户案例应用)

如前所述,实际的语义分析是在独立的情感分析服务中进行的。因此,我们有“发送分析请求并等待结果”。让我们定义“情感分析”和“情感分析结果”事件

情绪分析事件

情绪分析结果事件

情感分析事件具有userId和comment作为事件有效负载,情感分析结果事件具有userId和comment作为其有效负载和相关参数以及sentiment情感分析的结果。

让我们看看如何立即配置任务

发送请求出站事件配置

我们要发送的事件是“情感分析事件”,我们将过程中的userId和映射comment到事件有效负载中。对于出站事件,我们还需要配置用于发送事件的通道。为此,我们将使用以以下方式配置的“情感分析出站通道”:

情绪分析出站通道

这非常简单:我们将使用Kafka作为实现,sentiment-analysis将其发送给Kafka主题,然后将Event有效负载序列化为JSON。

那是针对出站的,让我们配置入站事件(“情感分析结果”事件):

等待情绪分析结果入站事件配置

我们希望一旦收到给定userId和的情感结果,就继续发送和接收任务comment,因此我们将其用作相关参数。在数据映射中,我们sentiment从事件有效负载中提取。然后,基于sentiment正或负,我们可以对该过程采取不同的操作。

到目前为止,我们已经配置了案例和流程来侦听适当的事件并发送带有特定事件的数据。您可能想知道,这一切都很好,但是如何接收这些事件,我需要做些什么呢?这是一个好问题。为了接收这些事件,我们需要对入站通道进行建模:

让我们看看这些配置如何:

查看入站频道

如您所见,这类似于出站通道。我们将使用Kafka作为实现,并聆听reviewsKafka主题。我们还可以配置更高级的Kafka Consumer属性。除了这些属性,我们还需要配置管道(如何转换接收到的事件):

 

查看入站通道管道

正如我们在一开始所看到的,审阅事件是JSON,因此我们的传入事件格式是JSON。我们使用固定值(reviewEvent)从事件中检测事件键;所有JSON字段都提取到事件有效负载中,没有租户ID检测,我们将使用默认的内部事件转换:

情感分析结果入站通道

情绪分析结果入站通道也使用Kafka并收听sentiment-analysis-results主题。我们尚未看到情感分析结果事件有效负载的外观。让我们稍微复杂一点,使用XML而不是JSON,因此我们的结果如下所示:

 


情感分析结果入站通道管道

将这些模型部署到Flowable客户关系服务后,这两个入站渠道将创建Kafka Consumers以收听给定的主题。每当收到事件时,都会通知适当的案例/过程。

情绪分析服务

它使用事件注册表启动事件,通过以下配置侦听“情感分析事件”:

开始情绪分析过程事件配置

总结

在本文中,我们展示了使用Flowable并使用Kafka在这些服务之间传输事件来构建具有多个微服务的非平凡的体系结构是多么容易。我们已经演示了如何使用Flowable轻松挂钩Kafka事件以及Flowable如何帮助建立应用事件的上下文。此示例的一部分还使用了Spring Boot + Flowable应用程序,这些应用程序使用作为微服务公开的流程和案例模型。

相关教程