【发布时间】:2018-07-19 14:24:24
【问题描述】:
我有一组 RESTful 服务,我的 Angular 5 客户端使用这些服务来执行应用程序的 CRUD 和业务操作。这些是一组微服务,它们使用发布/订阅消息队列在它们之间进行通信,例如创建用户时,用户服务器会向消息队列发布 UserCreated 事件,订阅者可以监听此事件并根据需要对其进行操作。
现在,这一切都很好,但我想如果 Angular 5 应用程序本身将事件发布到消息队列而不是发出 HTTP POST/PUT 或 DELETE 并且只对 API 发出 GET 请求,那会不会更好?
因此,重复上面的示例,Angular 5 客户端会将CreateUserEvent 发布到消息总线(在我的情况下为云发布/订阅),然后我可以让服务订阅这些事件并对其采取行动。例如,我的 RESTful 服务将只公开 GET /users 和 GET /user/:id。
我知道这是可行的,我猜我描述的是 CQRS,但我很想了解从 UI 将事件发布到消息总线是否是一种好的做法?
【问题讨论】:
-
对我来说这是一个很好的问题,虽然我对基于云的发布/订阅应用程序很陌生。
标签: angular5 gcloud cqrs google-cloud-pubsub