Рубрики
Без рубрики

Nestjs – микросервисы с redis

На прошлой неделе мы смотрели на то, как мы можем создать монорепор и настроить микросервисы, которые просто подключены … Tagged CadeScript, JavaScript, Nownners, Minerervices.

На прошлой неделе мы смотрели на то, как мы можем создать монорепо и настроить микросервисы, которые подключены просто через TCP. Этот пост будет строить на этом посте!

Так Если вы пропустили его, нажмите здесь

Установка Redis.

Что такое Redis:

Redis – это открытый источник (BSD Licensed), в магазине структуры данных в памяти, используемый в качестве базы данных, кэш и брокер сообщений. Он поддерживает структуры данных, такие как строки, хэши, списки, наборы, отсортированные наборы с операциями диапазона, растровые изображения, гиперблоглы, геопространственные индексы с запросами и потоками RADIUS.

Это глоток. Давайте немного сломаемся.

«В памяти» означает, что Redis работает и хранение всего в оперативной памяти. Так что он может работать ультра быстро. « Магазин структуры данных «Вы можете заменить это с базой данных. Сообщение брокер может получить сообщение в одном формате и отправлять его в соответствующий формат на приемник. Imagin 3 Люди говорят только по-немецки, говоря только на английском языке, а третье лицо говорит на немецком и английском языках. Этот третий человек похож на брокер сообщение. Он/Она переводится с английского на немецкий язык, а наоборот.

Redis имеет гораздо больше функций, чем только это Но мы будем использовать его как сообщение Broker.

Я использую WSL (2) для разработки и установки сервера Redis легко на Ubuntu/Debian. Вам просто нужно запустить:

sudo apt install redis-server

Вот и все! И сервер Redis также должен быть доступен в вашей ОС!

Теперь нам нужно начать redis.

#On WSL
sudo service redis-server start
#On Ubuntu
sudo systemctl redis-server start

Будем хранить «Привет Dev.to!» В нашей базе данных Redis. Для этого мы можем войти в Redis-Cli Отказ Тип:

redis-cli

Теперь вы должны увидеть что-то вроде:

127.0.0.1:6379>

Теперь мы можем ввести:

set test "Hello dev.to!"

Мы должны получить Хорошо Вернуться из Redis Чтобы получить значение, которое нам просто нужно ввести:

get test

Теперь вы должны увидеть Привет dev.to! . Хорошо, наш сервер Redis работает! Давайте выйдим это с

exit

Отправка сообщений с redis в nestjs

Во-первых, нам нужно добавить Redis Пакет до нашего проекта с:

yarn add redis

Теперь, когда мы установили Redis, нам просто нужно изменить 2 файла! Да в нашем случае только 2! Удивительно верно? Так что давайте сделаем это!

Первый Приложения/Блог/SRC/Main.ts

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { Transport } from '@nestjs/microservices';
import { Logger } from '@nestjs/common';

const logger = new Logger('Blog');

async function bootstrap() {
  const app = await NestFactory.createMicroservice(AppModule, {
    transport: Transport.REDIS,
    options: {
      url: 'redis://localhost:6379',
    },
  });
  await app.listen(() => logger.log('Microservice is listening'));
}
bootstrap();

Мы только что изменили вариант транспорта от TCP к Redis И, конечно, теперь нам нужно изменить сервер.

Второй Приложения/Lampeweb/src/app.service.ts

import { Injectable } from '@nestjs/common';
import {
  ClientProxyFactory,
  Transport,
  ClientProxy,
} from '@nestjs/microservices';

@Injectable()
export class AppService {
  private client: ClientProxy;

  constructor() {
    this.client = ClientProxyFactory.create({
      transport: Transport.REDIS,
      options: {
        url: 'redis://localhost:6379',
      }
    });
  }

  public getHello(): Promise {
    return this.client.send('getHello', 'Michael').toPromise();
  }
}

Здесь снова мы просто цепляемся ClientProxyFactory.Create функция к тому же значениям, что и раньше. В более крупном проекте это не должно быть жестко одето, а скорее передано через env Отказ

Теперь нам просто нужно снова запустить наши услуги, и мы должны увидеть то же самое сообщение, что и в прошлый раз!

Я надеюсь, тебе понравилось этот пост! Если вы хотите последующую, пожалуйста, прокомментируйте, как и поделитесь. Так что я могу знать, что вы заинтересованы в этом контелле!

👋say Привет! Instagram | Twitter |. Linkedin. | Средний |. Подергивание |. YouTube

Оригинал: “https://dev.to/lampewebdev/nestjs-microservices-with-redis-996”