На прошлой неделе мы смотрели на то, как мы можем создать монорепо и настроить микросервисы, которые подключены просто через 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”