Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Разработать схему БД приложения #1

Closed
EvilLord666 opened this issue Mar 15, 2021 · 13 comments
Closed

Разработать схему БД приложения #1

EvilLord666 opened this issue Mar 15, 2021 · 13 comments
Assignees

Comments

@EvilLord666
Copy link
Owner

Необходимо разработать схему БД с учетом того, что приложение должно выполнять следующие функции:

  1. Подключение к брокерам сообщений: RabbitMq, Apache Kafka , Active Mq
  2. Получение списка топиков, создание/удаление топиков
  3. Очистка сообщений из очередей
  4. Формирование сообщения и возможность отправки его как броадкастом, так и определенному адресату

Для этого в БД необходимо хранить информацию о брокерах и настройках подключения к ним, сообщения (вероятно, необходимо еще хранить и список адресатов). Поскольку сами сообщения могут быть большими (десятки мегабайт), необходимо сохранять их в файловой системе. Также для каждого сообщения необходимо хранить статус. Кроме того одно сообщение можно отправлять разным брокерам, поэтому это также нужно учесть при проектировании схемы.

@EvilLord666
Copy link
Owner Author

Предлагаю разработать схему БД в Mysql Workbench

@Drobashique
Copy link

Mq.pdf

@EvilLord666
Copy link
Owner Author

Согласно описанию: https://github.com/EvilLord666/Cassette/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%B0%D1%8F-%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C:-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8-%D0%BE-%D0%B1%D1%80%D0%BE%D0%BA%D0%B5%D1%80%D0%B0%D1%85,-%D0%BE%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8F%D1%85-%D0%B8-%D1%82%D0%BE%D0%BF%D0%B8%D0%BA%D0%B0%D1%85-(Kafka-%D0%B8-ActiveMq-RabbitMq)

Нам потребуется реализовать следующие таблицы:

  • broker_type (не описана в документе, но нужна, чтобы в коде создавать клиент нужного типа)
  • broker
  • message

@Drobashique
Copy link

MQ
Добавлена таблица с креденшиалами
Связь многие ко многим между сообщениями и брокерами с типом определенного брокера

@EvilLord666
Copy link
Owner Author

@Drobashique ,

  1. Лучше пусть будет таблица не Credentials, а Users/Accounts. длина полей маловата, пусть по 256 символов хранится. login -> username
  2. В broker описанию хватит - 512 символов (NULL) имени - 128 (имя брокера - уникальное) hostname и port лучше заменить одним полем address (т.к. возможно придется записывать и протокол), адрес д.б. строкой до 128 символов
  3. В message Адрес будем прикреплять к ообщению т.е. таблица address не нужна. Нужна таблица статуса сообщения (3 поля (id, code, name) у message должна быть ссылка на broker.
  4. broker_type должен быть привязан к broker, а не к message

@Drobashique
Copy link

mq1

@EvilLord666
Copy link
Owner Author

@Drobashique, у нас не будет храниться body в таблице, сообщения могут быть большими, они будут лежать на диске
path добавь длину до 300 (хотя она, как правило, 260-300), внутрь message нужно поместить еще поле:
-очередь/топик (строка)

@Drobashique
Copy link

mqq

@EvilLord666
Copy link
Owner Author

Предварительно считаем, что это подходит. Необходимо инициализировать по gitflow от ветки develop создать ветку feature/1_ApplicationSchema (схема формирования имен веток: номер задачи на гитхабе_Красткое описание сути задачи) ив этой ветке создать директорию docs/dbSchema, в которой положить скрипт для создания БД. @Drobashique

@DPechurkin
Copy link

menager_brokers.pdf

@DPechurkin
Copy link

Сделал свою версию модели базы

@DPechurkin
Copy link

model

@EvilLord666
Copy link
Owner Author

задача завершена

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants