zeebe 集成 kafka
Apache Kafka 是一种高度可伸缩,具有弹性和持久性的事件总线。它可能用于高吞吐量消息传递,事件驱动的体系结构,作为事件存储或支持事件流体系结构。
zeebe 是云原生的工作流引擎,主要用于微服务编排
在实际的工作中遇到了微服务编排和事件驱动架构设计等一系列问题。而 zeebe 和 kafka 正好可以集成起来一起使用,这大大的提高了系统架构的灵活性和可编排行。可以让我们在微服务编排上持续受益。
为什么集成?
在 zeebe 中进行微服务编排时,我们会画好一个工作流定义文件
如上图, taskA,taskB, taskC 都绑定了一个 jobWoker 这个 woker 可以是 java 或者其他语言里的一个方法或者函数(这些函数可以不在一个项目中),每当工作流的步骤执行到对应 task 时,对应的 work 函数就会执行,这样就可以将业务从硬编码中解耦,进行真正的微服务编排
但是在实际的业务中,业务不可能是一条单一的流程,举目前非常流行的事件驱动架构为例,假设我们的注册用户业务非常复杂,当注册完用户之后需要发邮件通知,发短信通知,给用户发送优惠券,或者其他服务。那么业务流就不再是单一的一条路走到黑了。
此时如果还是使用 zeebe 来进行服务编排,会怎样呢?
我们会在这个工作流里面定义非常多的并行流,也就是说当我们业务升级时,是需要去修改工作流的定义文件的。这样时比较繁琐的。
那么这个时候我们可以借助 kafka 来实现事件驱动。
当我们在定义工作流时,用户注册流程执行完后,接下来我们定义一个发送用户注册事件的流程,这时候 zeebe 就会向 kafka 指定的 topic 投递事件,通过业务服务订阅这个 topic 来完成整个注册用户的流程
zeebe 和 kafka 集成后,工作流定义文件就简化成:
所以 zeebe 集成 kafka 是非常有意义的,提高了我们业务的灵活性和可编排性。
如何集成
zeebe 的开发公司 Camunda 提供了 kafka-connect-zeebe 插件来实现将 zeebe 集成到了 kafka-connect 中,这样 zeebe 就可以在 kafka 中接受和发送消息了。
实验
官方给的安装教程好吃资源,有资源在试验下官方给的 demo
待续....
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于