我正在使用Spring Boot和Kafka开发一系列微服务。对于异步通信,我使用的Kafka运行良好。
我有一个用例,我需要两个微服务之间的同步通信(用户通过用户配置文件服务注册一个配置文件,需要在auth微服务中创建一个auth帐户)。
我应该直接调用auth服务(服务通信服务)还是应该使用Kafka?
任何示例或最佳实践建议将不胜感激。
答案 0 :(得分:1)
有多种因素可以推动您的决定:
是否需要您的Auth服务确认?
如果是的话:
如果没有:
使用队列1可以获得更好的弹性。
错误处理
想想auth服务失败?用户服务的反应应该是什么?
答案 1 :(得分:1)
理想情况下,在用户创建和身份验证中,实时响应将提供给客户端,但如果涉及复杂的流程或任务,则应首选用户创建队列。
对于多个微服务同步交互并处理其API响应,您可以构建聚合器服务,该服务可以充当不同服务之间的通信媒介,并与您的kafka队列消费者服务一起工作。