Тип работы:
Предмет:
Язык работы:


Репликация образов данных в микросервисной архитектуре в концепции event sourcing

Работа №42210

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы49
Год сдачи2019
Стоимость4900 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
195
Не подходит работа?

Узнай цену на написание


Введение 1
Глоссарий 3
1. Обзор межпроцессорного взаимодействия 4
1.1. Совместно используемая база данных 4
1.2. Синхронный и асинхронный подходы 6
1.3. Шаблон асинхронного обмена событиями 13
1.4. Обзор аналогов 14
1.5. Вывод 16
2. Разработка решения 17
2.1. Требования к разрабатываемому решению 17
2.2. Концепция компонента репликации 18
2.3. Отслеживание измененных данных (CDC) 19
2.4. Паттерн Event Sourcing 20
2.5. Очередь сообщений 24
2.6. Вывод 25
3. Реализация 27
3.1. Постановка задачи 27
3.2. Стек технологий и инструменты 28
3.3. Структура базы данных 29
3.4. Сериализация данных из таблиц CDC 34
3.5. Конфигурирование брокера сообщения 35
3.6. Тестирование 37
3.7. Итоги 39
Заключение 41
Список использованной литературы 42
Приложения

Микро сервисный подход к созданию информационных систем становится все более востребованным. Архитектура микросервисов способствует созданию программного приложения как набора независимых сервисов. Когда появляется необходимость реализовать конкретный бизнес-сценарий, часто требуется связь и координация между несколькими микросервисами. Поэтому построение межсервисных коммуникаций стало одной из самых важных и сложных задач, необходимых для реализации распределенных систем.
В архитектуре микросервисов есть несколько важных требований, которые осложняют интеграцию данных, например:
- устойчивость межсервисной связи,
- доступность необходимых данных, а не внутренней реализации,
- интеграция между актуальными и устаревшими версиями,
- интеграция между разными с точки зрения технологий частей системы,
- доступность предыдущих состояний системы.
Проблема, рассматриваемая в данной работе, состоит в том, что на данный момент отсутствует решение, автоматизирующее распространение копий данных между службами в микро сервисной архитектуре.
Объектом исследования является межпроцессорное взаимодействие в распределенных системах. Предмет исследования — репликация образов данных между микросервисами с использованием событийно-ориентированного подхода.
Целью моей работы стала разработка интеграционного компонента, позволяющего автоматизировать процесс репликации данных.
Для достижения поставленной цели были сформулированы задачи:
1. исследовать известные способы межсервисной коммуникации;
2. выявить среди них наиболее подходящий для достижения цели;
3. на основе выбранного способа спроектировать и реализовать прототип компонента репликации для РСУБД MS SQL Server;
4. реализовать два сервиса (источник и потребитель данных) для тестирования передачи данных между ними с помощью компонента.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате выполнения данной работы были исследованы основные методы межсервисного взаимодействия в микросервисной архитектуре и выявлена наиболее оптимальная из них. На основе выбранного подхода был спроектирован прототип компонента репликации данных и протестирован между двумя демонстрационными системами.
По итогам тестирования компонента можно сделать вывод, что предлагаемая концепция работоспособна и имеет потенциал для развития. Цель работы была достигнута.
В процессе работы были решены следующие задачи:
• проанализированы методы межсервисной коммуникации;
• выбран наиболее оптимальный для достижения цели;
• на основе выбранного способа спроектирован, реализован и протестирован компонент репликации.
Данная работа размещена в GitLab, с ней можно ознакомиться по ссылке: http://gititis.kpfu.ru/vsa/cdc demo project.git.


1. Apache Kafka Documentation [Электронный ресурс] // kafka.apache.org. URL: https ://kafka. apache .org/documentation/ (дата обращения 24.05.19)
2. Attunity Replication [Электронный ресурс] // attunity.com. URL: https://www.attunitv.com/products/replicate/ (дата обращения 24.05.19)
3. Chris Richardson, Microservice patterns: Messaging / Chris Richardson —2018. [Электронный ресурс]. — Режим доступа: https://microservices.io/patterns/communication-stvle/messaging.html (дата обращения 24.05.19)
4. Christian Horsdal, Microservices in .Net Core / Christian Horsdal, 2018
— 110 p.
5. Confluent's .NET Client for Apache Kafka [Электронный ресурс] // github.com. URL: https://github.com/confluentinc/confluent-kafka-dotnet (дата обращения 24.05.19)
6. Debezium [Электронный ресурс] // debezium.io. URL:
https://debezium.io/docs/connectors/solserver/ (дата обращения
25.04.2019)
7. Fielding, Roy Thomas, Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, ch.5, University of California, Irvine, 2000 [Электронный ресурс]. — Режим aocTvna:https://www.ics.uci.edu/~fielding/pubs/dissertation/rest arch stv le.htm (дата обращения 24.05.19)
8. Gregor Hohpe, Enterprise Integration Patterns / Gregor Hohpe, Bobby Woolf, 2004 — 167 p.
9. Jay Kreps, Benchmarking Apache Kafka: 2 Million Writes Per Second (On Three Cheap Machines) 11 engineering.linkedin.com. [Электронный ресурс]. — Режим доступа:
https://engineering.1inkedin.com/kafka/benchmarking-apache-kafka-2-mil lion-writes-second-three-cheap-machines (дата обращения 24.05.19)
10. Linkedln Databus [Электронный ресурс] // github.com. URL: https://github.com/linkedin/databus (дата обращения 25.04.2019)
11. M. van Steen and A.S. Tanenbaum, Distributed Systems, 3rd ed., distributed-systems.net, 2017 — 140 p.
12. Martin Fowler. Patterns of Enterprise Application Architecture / Martin Fowler, David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, Randy Stafford.—Addison-Wesley, 2002.— 46 p.
13. Martin Kleppmann, Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems / Martin Kleppmann — O'Reilly, 2017. — 537p.
14. Sam Newman, Building Microservices / Sam Newman — O'Reilly, 2016, —70 p.
15. A. H. Алпатов Развитие распределенных технологий и систем, // Международный электронный научный журнал Перспективы Науки и Образования. 2015. 2 (14) [Электронный ресурс]. — Режим доступа:
https://pnoioumaLfiles.wordpress.com/2015/01/pdf 150208.pdf. (дата обращения 16.04.19)
16. Артамонов Юрий Сергеевич, Востокин Сергей Владимирович Разработка распределенных приложений сбора и анализа данных на базе микро сервисной архитектуры // Известия Самарского научного центра РАН. 2016. №4-4. URL: httpsV/cyberleninka.ru/article/n/razrabotka-raspredelennyh-prilozheniy-sb ora-i-analiza-dannyh-na-baze-mikroservisnoy-arhitektury (дата обращения: 06.05.2019).
17. E.Л.Китаев [и др.], Мониторинг изменений в базах данных на основе анализа журнала транзакций // Препринты ИПМ им.
М.В.Келдыша. 2012. № 2. 14 с. [Электронный ресурс]. — Режим доступа: http://librarv.keldvsh.ru/preprint.asp?id=2012-2 ("дата обращения 24.05.19)


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ