我对像RabbitMQ这样的消息代理的概念还比较陌生,想学习一些最佳实践。
RabbitMQ似乎是促进微服务之间异步通信的好方法,但是我有一个初学者问题,在其他地方找不到答案。
在微服务架构中,什么情况下不需要使用诸如RabbitMQ之类的消息代理呢?
以一个例子为例:
假设我有两个服务。服务 A 和服务B(认证服务)
客户端向服务A 发出请求,服务 A 需要与服务B(认证服务) 通信以对用户进行身份验证和授权请求。(使用基本认证)
Internet
Client ----------------> Service A +-------> Service B [Authenticate/Authorization]
HTTP request HTTP or AMQP??
在我有限的理解中,我能预见到在像上述场景中使用AMQP的问题是,服务A必须等待服务B处理和响应消息后才能处理请求并向客户端发送响应,这可能导致在可接受的时间范围内无法完成。
实际上,让服务A通过AMQP等待服务B的响应是否是个坏主意呢?
还是说我完全误解了AMQP的用途?