我有一些微服务,它们通过API网关公开。网关负责处理身份验证和路由到系统中。网关后面的服务大多是简单的CRUD服务。每个服务公开自己的API,它们通过HTTP同步通信。所有这些服务,包括API网关,都是“默认”NestJS应用程序。
让我们继续使用Cats的例子。每当Cat-Service
更新或创建一个新的Cat
时,我希望发出一个CatCreatedEvent
或CatUpdatedEvent
。该事件应该被推送到某个消息代理(如RabbitMQ)中,另一个服务应该侦听该事件并异步处理该事件。
我不知道如何实现这一点,就如何“注入”RabbitMQ的正确方式而言,我想知道这种方法在generel中是否有意义。我已经看到了NestJS的CQRS模块,但我认为CQRS对这个领域来说有点太多了。特别是因为在这个领域中拆分读和写模型没有任何好处。也许我完全走错了路。所以我希望你能给我一些建议。
2条答案
按热度按时间x8diyxa71#
RabbitMQ在nestjs中作为microservice受支持。如果希望应用程序同时支持http请求和消息代理,则可以创建hybrid application。
lskq00tm2#
注意startAllMicroservices异步已过时****