cqrs异常及错误处理

kknvjkwl  于 2021-06-05  发布在  Kafka
关注(0)|答案(1)|浏览(564)

我有点问题,
我在nestjs中使用Kafka和CQR。
我的问题是:在写过程中处理错误的最佳方法是什么?
我将请求发送到我的nestjs应用程序的webapi上
我有一件事 ObjectedCreatedEvent 创建后将其发送到事件总线上,并将其写入kafka(confluent.cloud)。
kafka返回错误87,因为针对json模式的消息验证失败(到目前为止还可以)
如何正确响应发生错误的web api?
只是在这个过程中启动了另一个侦听器?我想Kafka(合流云)至少应该是这样的主题。
我只想办个活动 ObjectValdiationFailedEvent 把它放到事件巴士上。

ux6nzvsh

ux6nzvsh1#

合流云在这里帮不了你什么,因为这是一个客户端问题。如你所知;kafka接收生产者序列化的内容,并将数据存储到选定的分区中。在您的例子中,数据不是离开客户机的事件,这意味着抛出这个错误的东西肯定不是服务器端kafka而是客户机端。
我的建议是设置框架nestjs支持的任何异常处理程序。我不是node.js开发人员(我的背景是java和go),但是快速查看一下nestjs文档可以发现,这个框架允许您注册能够处理异常的过滤器。例如:

import { Catch, RpcExceptionFilter, ArgumentsHost } from '@nestjs/common';
import { Observable, throwError } from 'rxjs';
import { RpcException } from '@nestjs/microservices';

@Catch(RpcException)
export class ExceptionFilter implements RpcExceptionFilter<RpcException> {
  catch(exception: RpcException, host: ArgumentsHost): Observable<any> {
    return throwError(exception.getError());
  }
}

这里有更多信息。
因此,您可能需要调查哪个层抛出此错误,以便相应地进行处理。

相关问题