Присоединяйтесь к семье Talkhouse? | Webrtc на базе Peer to Peer Voice, видео -вызова и обмена сообщениями.
Асинхронное асинхронное приложение для асинхронных микросервисов, основанное на асинхронных коммуникациях
Это веб-приложение на основе электронной коммерции для покупки и продажи билетов различных живых и забавных мероприятий, происходящих по всему городу на основе архитектуры микросервисов. Приложение разбито на несколько отдельных служб, которые разговаривают друг с другом через публикацию событий через автобус. Каждая служба несет ответственность за обработку и реализацию конкретной функции приложения, такого как Auth Service, обрабатывает аутентификацию, заказы Обрабатывает заказы, платежные услуги реализуют платежи пользователей, и все эти услуги работают и передают асинхронно через шину события (NATS-Streaming), чтобы запустить все приложение
Использование архитектуры микросервисов и не полагаться на монолоит -паттерн делает приложение более долговечным, устойчивым к разломам, очень доступным и увеличивает время повышения приложения. Таким образом, если одна из сервисов вылетает, другие части приложения все еще будут функциональными и доступными для пользователей. Микросервисы и распределенные системы являются сердцем современного программного обеспечения и бэкэнд -инженерии.
Next.js для серверного рендеринга и фронта строительстваExpress.js используется для строительства бэкэндаMongodb как база данныхMongoose как ормTypescript , Backend полностью написан в TypeScript, чтобы предотвратить головные боли, которые вы получаете, когда бесконечное количество событий течет без подсказокStripe для обработки платежейJest and Supertest для тестированияDocker для контейнеризацииKubernetes для оркестровки ConatinerSkaffold , который облегчает непрерывную разработку для приложений Kubernetes. Делает работу и управление Kubernetes и различными услугами Kubernetes и развертывает намного проще.NATS Streaming используется в качестве автобуса или очереди сообщений для публикации и обработки событий, излучаемых различными службами.Bull.js - это быстрая и надежная система очередей. Он используется для реализации таймера истечения срока оплаты.Приложение разделено на 7 сервисов, которые обрабатывают и реализуют конкретную функцию и функциональность приложения:
auth обрабатывает всю аутентификацию и авторизацию приложения. Используется аутентификация на основе JWT и Cookie.expiration обрабатывает таймер истечения платежей, чтобы убедиться, что пользователь оплачивает в течение указанного срока.orders на обработку пользовательских заказовpayments за обработку полосовых платежейtickets на обработку билетов (создание, обновление, извлечение). Вместо того, чтобы продавать продукты, это приложение для электронной коммерции продает билеты с различными живыми событиями, происходящими по всему городу.common все общие функции, такие как требование, обработка ошибок и другие средние войны и функции, разделяемые различными службами, сгруппированы вместе. Эта услуга опубликована в виде пакета NPM и установлена в других службах, которые будут использоваться.client обрабатывает и реализует фронт приложения.infra управляет всеми файлами развертывания и обслуживания Kubernetes (.yaml), которые запускают запуск приложения Каждая служба, база данных Mogongodb и сервер-потоковой передачи NATS предназначены как контейнер Docker. Docker Conatiners управляются и организуются их соответствующими файлами Kubernetes. Связь между различными развертываниями Kuberentes регулируется Service ObjectType. Наконец, Ingress-Service, в котором используется Ingress-Nginx (контроллер Ingress для Kubernetes с использованием Nginx) в качестве обратного прокси и балансировщика нагрузки для прокси или прямых входящих запросов на свои соответствующие службы под названием ticketing.dev HostNAME. Skaffold используется для того, чтобы все развертывания и услуги Kubernetes работают с одним командным skaffold dev , который использует файл skaflold.yaml.
Получение этого проекта и запуска на вашей местной машине - общеизвестно задача. Это требует некоторой знания о экосистеме Docker и Kubernetes. Если вы все еще готовы к вызову, или если у вас нет жизни, попробуйте заставить его работать. Убедитесь, что у вас установлены Docker, Kubernetes и Skaffold. Установите требуемые переменные среды и запустите следующую команду:
skaffold dev
И приложение Boom будет запущено, не требуется дополнительная настройка и зависимости.
Чтобы удалить любые ресурсы, развернутые Skaffold и остановить все развертывания, услуги и контейнеров.
skaffold delete
Попробуйте запустить и тестировать его локально, только если у вас нет жизни. В противном случае я не тот, кто виноват в том, что вы почесываете голову? Пытаетесь понять этот MicroServices Miss of Event, управляемый событиями, между услугами?