我有一组RESTful服务,Angular 5客户机使用它们来执行应用程序的CRUD和业务操作。这些是一组微服务,并且它们使用发布/订阅消息队列来在它们之间通信,例如,当创建用户时,用户服务器将UserCreated事件发布到消息队列,并且订阅者可以监听该事件并根据需要对其进行操作。
现在,这一切都很好,但我在想,如果Angular 5应用程序自己将事件发布到消息队列,而不是进行HTTP POST/PUT或DELETE,而只对API发出GET请求,不是更好吗?
例如,我的RESTful服务将只公开GET /users和GET /user/:id。
我知道这是可行的,我猜我所描述的是CQRS,但我很想知道从UI向消息总线发布事件是否是好的做法?
发布于 2018-04-16 22:50:58
与Microservices.相比,消息传递总线的概念非常不同也许,你的问题的答案在于你从架构的角度看待这两个问题的方式。
消息传递总线(无论它是后端特定的还是前端特定的)以这样的方式设计,即它服务于环境的受限边界内的实体的通信目的,即后端或前端。
另一方面,微服务体系结构的设计方式是,两个不同的环境可以是后端-前端或后端-后端,可以“有效”通信。
因此,在这两个概念背后有一个明确的动机分离。现在,从您的角度来看,您可能会使用一种可能有效的混合方法,它也可能导致与性能、架构设计或管理费用相关的有趣发现。
发布于 2019-05-07 03:31:56
可以直接从客户端发布,但需要注意的是,这意味着客户端需要具有适当的凭据才能发布。因此,更可取的做法是让服务进行发布,以响应客户端发送的请求。
https://stackoverflow.com/questions/48695266
复制相似问题