NestJS 微服务 - 在 ClientProxy 上使用 Facades 进行服务通信

问题描述

我开始学习nestJS + rabbitMQ,看看微服务之间的一个通信方式in docs

在模块中注册

@Module({
  imports: [
    ClientsModule.register([
      {
        name: 'MATH_SERVICE',transport: Transport.RMQ,options: {
          urls: ['amqp://localhost:5672'],queue: 'cats_queue',queueOptions: {
            durable: false
          },},]),]
  ...
})

然后发送消息:

this.client.send<number>(pattern,payload);

我很好奇 - 有没有办法把它包装成 Facade 模式?

例如,我有一个应用程序结构(3 个 nestJS 应用程序 - 每个服务 1 个):

我想做这样的事情:

// This is a route of gateway controller
@Get(':id')
getUserById(@Param('id') id: string): string {
  return this.usersFacade.getById(id);
}

在上面的代码中,usersFacade 自行决定它应该使用哪个队列以及取决于被调用方法的消息。 我想这是一个服务,要么在用户服务中描述,要么应该移动到一个单独的应用程序(类似于公共服务),该应用程序专用于这些服务和其他可重复使用的其他应用程序的东西。 在这种情况下,我应该如何从外部 nestJS 应用导入服务?

很高兴能有关于它的想法,甚至是与 nestJs 无关的类似微服务案例。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...