Kafka是事件驱动架构的常见默认配置,但将其应用于遗留环境会导致阻抗不匹配。在一些情况下,我们已经成功地使用了最小化遗留复杂性融合Kafka REST代理.代理允许开发者通过HTTP接口访问Kafka,这在使用本地Kafka协议比较困难的环境中非常有用。例如,只需让SAP团队通过预先配置的SAP远程函数调用调用HTTP POST命令,我们就可以使用通过SAP发出的事件,从而避免了围绕SAP启动Java抽象(以及一个团队来管理它)的需要。代理功能非常齐全,尽管与任何此类适配器工具一样,我们建议谨慎使用,并对所涉及的权衡有一个清晰的看法。我们认为,当代理允许遗留生产者发送事件时,它是有价值的,但当抽象变得更加复杂时,要小心通过代理创建事件消费者。代理并没有改变Kafka消费者是有状态的这一事实,这意味着通过REST API创建的消费者实例被绑定到一个特定的代理,并且需要通过HTTP调用来消费来自主题的消息,这改变了Kafka事件的标准语义。