我目前正在开发一个使用节点和python的微服务系统。我们目前正在使用AWS来处理队列上的服务之间的消息,但是在其中一个服务中,我们向队列发送了一条消息,而该服务处理了该消息。没有其他微型服务来处理它。因此,我的问题是,最好是通过同一个应用程序或容器中的事件总线/事件队列来处理内部消息,还是应该通过网络请求将消息发送到外部服务并由工作人员处理。
Application
|-------------------------------------------------------|
| |
| |---------| Send Message |---------||
| | Main |------------------------------>| Internal||
| | App |<------------------------------| Queue ||
| |---------| Emit Message |---------||
| |
|-------------------------------------------------------|
Application
|-----------------|
| |
| | Send Network Message |---------|
| |-------------------------->| External|
| |<--------------------------| Queue |
| | Process Network Message |---------|
| |
|-----------------|
发布于 2022-02-22 12:39:21
在作出决定之前,我会考虑以下几个方面:
考虑到内部队列,考虑到内部队列,如果整个荚/box崩溃(无论出于什么原因),会发生什么?从业务和架构的角度来看,丢失存储在队列中的消息是可以接受的?
TL;DR --如果您有延迟限制,并且队列用于保存少量快速消耗的消息,那么使用内部队列可能是有意义的。否则,(考虑到上述情况),外部队列是更好的选择。
https://stackoverflow.com/questions/71217565
复制相似问题