Skip to content
This repository was archived by the owner on May 13, 2021. It is now read-only.

gnupinguin/Project-X

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

121 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project X

Project X - сервис, позволяющий бесперебойно обмениваться цитатами между двумя датацентрами.

Запуск и настройка проекта для добавления новых цитат

Для корректной работы приложения должны быть установлены, настроены и запущены:

  • MongoDB
  • Apache Kafka

Настройка MongoDB

Для настройки MongoDB необходимо внести изменения в файл application.yml в секцию spring.data.mongodb. Все документы указанной коллекции базы данных должны содержать поля text и author.

Настройка Apache Kafka

Для работы приложения необходимо, чтобы на сервере Kafka были созданы следующие топики: quote-local, quote-replica, quote-reserve (названия можно изменить в application.yml). Для достижения полной синхронизации и отказоустойчивости при передаче цитат между датацентрами, приложение использует два kafka-consumer и один kafka-producer. Продюссер нужен для записи в топики quote-local и quote-replica, находящиеся на сервере kafka местного датацентра. Один консьюмер нужен для чтения из топика quote-local местного датацентра, другой для чтения топика quote-replica удалённого датацентра. Настройки можно найти в application.yml.

Отказоустойчивость

Для достижения отказоустойчивости в случае неполадки одного датацентра используется переадресация на другой датацентр. Для настройки переадресации необходимо внести изменения в файл application.yml в поле server.remote-host.

Сборка и запуск проекта

В качестве сборщика проекта используется Maven. Для сборки и запуска проекта необходимо перейти в папку Server. Выполнить: mvn clean package для сборки проекта. Для запуска: java -jar target/project-x-spring-server-1.0-SNAPSHOT.jar

Организация работы проекта

Цитата полученная с сервера, отправляется в топик quote-local, откуда она кладется в базу данных и отпраляется в топик quote-replica. При ошибке записи в базу данных, цитата отправляется в топик quote-reserve, где ожидает успешной записи в базу данных. При неудачной записи в базу данных цитаты, полученной из топика quote-replica другого датацентра, она будет отмечена как непрочитанная. Если неполадки Kafka или MongoDB выявляются во время обработки запроса, то он переадресуется на сервер друго датацентра.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors