Angular 5和消息总线

时间:2018-02-08 21:43:24

标签: angular5 gcloud cqrs google-cloud-pubsub

我有一组RESTful服务,我的Angular 5客户端用它来为应用程序执行CRUD和业务操作。这些是一组微​​服务,它们使用发布/订阅消息队列在它们之间进行通信,例如,创建用户时,用户服务器将UserCreated事件发布到消息队列,订阅者可以监听此事件并根据需要对其进行操作。

现在,这一切都很好,但我认为如果Angular 5应用程序本身将事件发布到消息队列而不是发出HTTP POST / PUT或DELETE并且仅针对API发出GET请求,那就不会更好?

因此,重复Angular 5客户端上面的示例会将CreateUserEvent发布到消息总线(在我的案例中为cloud pub / sub),然后我可以让服务订阅这些事件并对其进行操作。我的RESTful服务只会暴露GET / users和GET / user /:id。

我知道这是可行的,我想我所描述的是CQRS,但我很想知道如果从UI发布事件到消息总线是一种好习惯吗?

2 个答案:

答案 0 :(得分:0)

消息传递总线的概念与微服务非常不同。也许,你的问题的答案在于你从建筑的角度来看这两个方面。

消息传递总线(无论是特定于后端还是特定于前端)以这样的方式设计,即它用于在环境的受限边界(即后端或前端)内进行实体通信的目的。

另一方面,微服务架构的设计方式使得两个不同的环境可以是后端 - 后端或后端 - 后端,可以有效地实现"通信。

因此,这两个概念背后的动机明显分离。现在,从您的角度来看,您可以使用可能有效的混合方法,也可能会导致与性能,架构设计或开销相关的有趣发现。

答案 1 :(得分:0)

可以直接从客户端发布,但要注意的是,这意味着客户端需要具有适当的凭据才能发布。因此,可能最好让服务响应客户端发送的请求进行发布。