如今在微服务世界中,我在工作场所看到了很多使用卡夫卡消息的设计,而在微服务之间使用 rest api 调用可以获得类似的结果。从技术上讲,您可以完全停止使用 rest api 调用,而是使用 kafka 消息传递。我真的很想知道最佳实践,利弊,什么时候在微服务之间使用 api 调用,什么时候使用卡夫卡消息。
让我们举一个现实生活中的例子:
我有库存服务和供应商服务。每天供应商服务调用供应商 API 来获取新的商品,这些商品需要移动到库存服务中。项的数量可以多达10,000个对象。
对于这个用例,最好是:
从供应商 API 获得新数据后,调用库存服务的 REST API 来存储新项目。
从供应商 API 获得新数据后,将它们作为消息发送到一个卡夫卡主题,供库存服务使用
你会选择哪种方式,考虑的因素是什么