微服务同步通信-服务到服务或消息代理

zfycwa2u  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(684)

我正在使用springboot和kafka开发一系列的微服务。对于异步通信,我使用的是kafka,它工作得很好。
我有一个用例,需要在两个微服务之间进行同步通信(用户通过用户配置文件服务注册一个配置文件,该服务需要在auth微服务中创建一个auth帐户)。
我应该直接调用auth服务(服务到服务的通信)还是应该使用kafka?
任何例子或最佳实践建议将不胜感激。

ie3xauqp

ie3xauqp1#

有多种因素可以推动您的决策:
需要认证服务的确认吗?
如果是:
要立即确认,请使用http
对于非即时确认,可以实现回调模式。在您的例子中,用户配置文件通过kafka向auth服务发送请求,并调用用户配置文件的端点来报告作业的状态。
如果没有:
使用队列1以获得更好的恢复能力。
错误处理
想想身份验证服务失败?用户服务的React应该是什么?
如果验证服务失败,用户服务也应该失败
使用http
如果验证服务失败,则用户服务不应失败。
使用队列

3lxsmp7m

3lxsmp7m2#

理想情况下,在用户创建和身份验证中,会向客户端提供实时响应,但如果涉及复杂的过程或任务,则应首选用户创建后队列。
对于多个微服务同步交互和处理它们的api响应,您可以构建一个聚合器服务,它可以作为不同服务之间的通信媒介,并与kafka队列使用者服务一起工作。

相关问题