小编Asa*_*fir的帖子

NestJS Mongoose 连接在负载测试时终止

当多个开发人员使用我的 API 时,多个并发请求将被发送到 Mongoose。当并发量很高时,连接就会“死亡”并拒绝满足任何新请求,无论我等待多长时间(几个小时!)。

我只是想说,正常使用时一切正常。大量使用会导致连接崩溃。

我的 MongooseModule 初始化:

MongooseModule.forRoot(DatabasesService.MONGO_FULL_URL, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useFindAndModify: false,
  autoEncryption: {
    keyVaultNamespace: DatabasesService.keyVaultNamespace,
    kmsProviders: DatabasesService.kmsProviders,
    extraOptions: {
      mongocryptdSpawnArgs: ['--pidfilepath', '/tmp/mongocryptd.pid']
    }
  } as any
})
Run Code Online (Sandbox Code Playgroud)

导入功能的模块:

@Module({
  imports: [MongooseModule.forFeature([{ name: 'modelName', schema: ModelNameSchema }])],
  providers: [ModelNameService],
  controllers: [...],
  exports: [...]
})
Run Code Online (Sandbox Code Playgroud)

服务:

@Injectable()
export class ModelNameService {
  constructor(
    @InjectModel('modelName') private modelName: Model<IModelName>
  ) {}

  async findAll(): Promise<IModelName[]> {
    const result: IModelName[] = await this.modelName.find().exec();
    if (!result) throw new BadRequestException(`No result was found.`);
    return …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb nestjs

6
推荐指数
0
解决办法
405
查看次数

使用 Mongoose 连接 docker 环境中的 MongoCryptD 实例

我在网上搜索过但无法在任何地方找到答案。我正在尝试使用 NestJS 框架运行 API Web 服务。

我正在运行 docker-compose,它会启动 API 服务器、MongoDB 实例和 mongocryptd 实例,以允许在我的应用程序上进行客户端字段级加密。

我能够连接到 MongoDB 实例,但无法连接到 mongocryptd 实例。

Docker-Compose 文件:

version: "3.7"
services:
  api:
    build:
      context: .
      dockerfile: Dockerfile
      labels:
        env: dev
      args:
        APP: appname
        APP_PORT: 3000
    ports:
      - "3000:3000"
    command: ["sh", "-c", "npm run start:app:dev"]
    volumes:
      - .:/app

  mongodb:
    build:
      context: .
      dockerfile: docker/MongoEP-Dockerfile
      labels:
        env: dev
      args:
        MONGO_PACKAGE: mongodb-enterprise
        MONGO_REPO: repo.mongodb.com
    image: mongo-enterprise:4.2.5
    command: ["--auth"]
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: usr
      MONGO_INITDB_ROOT_PASSWORD: pwd
    ports:
      - "27017:27017"
    volumes: ["/private/var/services/mongodb:/data/db"]

  mongocryptd: …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb docker docker-compose docker-network

5
推荐指数
1
解决办法
3143
查看次数