Введение 3
Глава 1. Анализ предметной области 5
1.1 Исследование рынка информационных систем 5
1.2 Отказы и сбои в программных системах 8
1.2.1 Описание отказов и сбоев 8
1.2.2 Механизмы обеспечения отказоустойчивости 13
1.3 Анализ существующих решений 18
1.3.1 RabbitMQ 21
1.3.2 Apache ActiveMQ 24
1.3.3 Redis 26
1.3.4 Итоги 28
1.4 . Выбор механизмов отказоустойчивости 30
1.4.1 Алгоритм консенсуса для запуска в кластере 30
1.4.1.1 Paxos 32
1.4.1.2 Raft 33
1.4.1.3 Zab 34
1.4.1.4 Выбор алгоритма консенсуса 34
1.4.2 Протокол взаимодействия с диском 36
1.4.3 Протокол сетевого взаимодействия 37
Глава 2. Проектирование и реализация приложения 39
2.1 Проектирование приложения 39
2.2 Реализация бизнес-логики 42
2.2.1 Приоритетная очередь 42
2.2.2 Ограничения очереди 46
2.2.3 Представление очереди в коде 47
2.2.4 Взаимодействие с очередями 49
2.3 Реализация алгоритма консенсуса Raft 51
2.3.1 Описание алгоритма Raft 51
2.3.2 Реализация модуля консенсуса 53
2.3.3 Выбор лидера 59
2.3.4 Репликация лога 63
2.4 Реализация модуля для работы с диском 68
2.4.1 Возможные ошибки при работе с файлами 68
2.4.2 Реализация интерфейса хранилища 74
2.5 Сетевое взаимодействие 81
2.6 Клиент-серверный протокол 86
Глава 3. Тестирование реализованного приложения 91
3.1 Тестирование функциональности 91
3.2 Тестирование отказоустойчивости 94
3.2.1 Работа с диском 94
3.2.2 Тестирование работы в кластере 100
3.3 Тестирование производительности 104
3.3.1 Тестирование приложения 104
3.3.2 Тестирование Redis 106
3.3.3 Тестирование Apache ActiveMQ 108
3.3.4 Тестирование RabbitMQ 109
3.3.5 Результаты тестирования 110
Заключение 113
Список использованных источников 115
Глоссарий 120
Приложения 122
Приложение А 122
Приложение Б 132
Приложение В 133
Приложение Г 135
Приложение Д 137
Приложение Е 139
Такие приложения полезны в сферах, где важна очередность обслуживания клиентов в зависимости от их статуса или срочности запроса. Например, менеджер может назначать более высокий приоритет клиентам с VIP-статусом или тем, кто ожидает уже длительное время. Это позволит сократить время ожидания и улучшить качество обслуживания.
Цель ВКР - разработка отказоустойчивого менеджера приоритетных очередей сообщений.
Для достижения цели необходимо решить следующие задачи:
- Анализ существующих систем управления очередями
- Проектирование алгоритмов отказоустойчивой работы менеджера очередей сообщений
- Проектирование архитектуры приложения
- Реализация приложения на основе разработанных алгоритмов
- Тестирование функциональности приложения
Объект исследования - алгоритмы работы менеджеров очередей сообщений. Предмет исследования - отказоустойчивый менеджер приоритетных очередей сообщений.
В ходе работы были использованы следующие методы и средства исследования:
1. Обзор и сравнение существующих алгоритмов для обеспечения отказоустойчивости
2. Анализ существующих программных решений с целью определения их ограничений и недостатков
3. Анализ структур данных для реализации очереди с приоритетами
4. Проектирование алгоритмов обеспечения отказоустойчивости
5. Реализация программы менеджера приоритетных очередей сообщений
6. Тестирование приложения
Разработка отказоустойчивого менеджера приоритетных очередей. А также похожие готовые работы: страница 57 #9106800
Артикул: 9106800
- Предмет: Программирование
- Уникальность: 76% (Антиплагиат.ВУЗ)
- Разместил(-а): 185 Рамиль в 2024 году
- Количество страниц: 137
- Формат файла: docx
2 900p.
1. Маркетинговое исследование Интернет-торговля в России 2022 / [Электронный ресурс] // Data Insight: [сайт]. — URL: https://datainsight.ru/eCommerce 2022. Дата публикации: 23 марта 2023 (дата обращения: 20.09.2023).
2. Исследование Тинькофф: как изменился рынок доставки продуктов за последние три года / [Электронный ресурс] // Тинькофф : [сайт]. — URL:
https://www.tinkoff.ru/about/news/14062023-tinkoff-research-how-e-grocer y-market-has-changed-over-the-past-three-years/. Дата публикации: 14 июня 2023 (дата обращения: 25.09.2023).
3. Исследование Tinkoff eCommerce: за год число продавцов, работающих на двух маркетплейсах, выросло на 64% / [Электронный ресурс] // Тинькофф : [сайт]. — URL:
https://www.tinkoff.ru/about/news/04072023-tinkoff-ecommerce-research-se llers-on-marketplaces/. Дата публикации: 4 июля 2023 (дата обращения: 30.09.2023).
4. Потери организаций от простоев и сбоев ИТ-систем // TAdviser, 2019. - URL:
https://www.tadviser.ru/index.php/Статья:Потери организаций от просто ев и сбоев ИТ-систем. (дата обращения: 12.10.2023).
5. App Store Downtime Cost Apple $25M in Sales // the Mac Observer. -
URL:
https://www.macobserver.com/tmo/article/app-store-downtime-cost-apple-25 m-in-sales. Дата публикации: 12 марта 2015. (дата обращения: 14.10.2023).
6. Шубинский, И. Б. Ошибки, неисправности и отказы [Текст] / И. Б. Шубинский // Надежность. — 2021. — Том 21. № 2. — С. 24-27.
7. M. van Steen and A.S. Tanenbaum, Distributed Systems. - 4th ed. - 2023. - 685 p.
8. Michael G., Kishor S. Trivedi, A classification of software faults [Текст] / Michael Grottke, Kishor S. Trivedi // Journal of Reliability Engineering Association of Japan. — 2005. — Vol 27. No 7. — P 425-438.
9. Ravishankar K. Iyer, Inhwan L., Software Fault Tolerance in Computer Operating Systems [Текст] / Ravishankar K. Iyer, Inhwan L., // University of Illinois at Urbana-Champaign. — 1995. — No 11. — P. 250-279.
10. Hamill, M., Goseva-Popstojanova, K. Exploring fault types, detection activities, and failure severity in an evolving safety-critical software system [Текст] / Hamill, M., Goseva-Popstojanova, K. // Software Quality Journal. — 2015. — Vol 23. — P 229-265.
11. Algirdas A., Jean-Claude L., Biran R., Dependability and Its Threats: A Taxonomy [Текст] / Algirdas A., Jean-Claude L., Biran R. // IFIP Advances in Information and Communication Technology. — 2004. — No 156. — P 91-120.
12. Biran R., System Structure for Software Fault Tolerance [Текст] / Biran R. // ACM SIGPLAN Notices. — 2003. — Vol 10. No 6. — P 437-449.
13 .Goutam K.S. Approaches to Software Based Fault Tolerance [Текст] / Goutam K.S. // Computer Science Journal of Moldova. — 2005. — Vol 13. No3. —P 193-231.
14 .Premathas S., Radu C., Rajkumar B., High-Availability Clusters: A Taxonomy, Survey, and Future Directions [Текст] / Premathas S., Radu C., Rajkumar B. // Journal of Systems and Software. — 2022. — No 187. — P 193-231.
15 .Christian E., Symmetric Active/Active High availability for High-Performance Computing System services, Ph. D. thesis, The University Of Reading, 2008, 186 p.
16 .RFC 9293 Transmission Control Protocol (TCP) // IETF | Internet Engineering Task Force. - URL: https://www.ietf.org/rfc/rfc9293.pdf (дата обращения: 02.11.2023).
17 .Atomic Commit In SQLite // SQLite. - URL: https://sqlite.org/atomiccommit.html (дата обращения: 23.10.2023).
18 .Thanumalayan S.P., Vijay C., Ramnatthan A., Samer A.K., Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau, All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications // USENIX Symposium on Operating Systems Design and Implementation. - 2014. - No 11. - P 433-448.
19 .RFC 896 Congestion Control in IP/TCP Internetworks // IETF | Internet Engineering Task Force. - URL: https://datatracker.ietf.org/doc/html/rfc896 (дата обращения: 14.10.2023).
20 .Anthony R., Yuvraj P., Ramnatthan A., Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau Can Applications Recover from fsync Failures? [Текст] / Anthony R., Yuvraj P., Ramnatthan A., Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau // USENIX Symposium on Operating Systems Design and Implementation. — 2020. — Vol. 17 No. 12 — P 753-767.
21 . Server Operator Documentation / [Электронный ресурс] // RabbitMQ : [сайт]. — URL: https://www.rabbitmq.com/ (дата обращения: 14.09.2023).
22 .Documentation / [Электронный ресурс] // Redis : [сайт]. — URL: https://redis.io/ (дата обращения: 14.09.2023).
23 .Apache ActiveMQ Artemis Documentation / [Электронный ресурс] // Apache ActiveMQ : [сайт]. — URL:
https://activemq.apache. org/components/artemis/documentation/ (дата обращения: 15.09.2023).
24 .Яшкардин В. IEEE 754 - стандарт двоичной арифметики с плавающей точкой /Яшкардин В. [Электронный ресурс] // UNUX : [сайт]. — URL: https://uneex.ru/static/ieee754/ieee754.html. Дата публикации: 04.06.2012 (дата обращения: 20.09.2023).
25 .Leslie L. The Part-Time Parliament // ACM Transactions on Computer Systems. - 1998. - No. 16. - 33 p.
26 .Tushar D. Chandra, Robert G., Joshua R., Paxos made live: an engineering perspective // Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing. - 2007. - No 16. - P. 398-407.
27 .Leslie L. Generalized Consensus and Paxos // Microsoft Research Technical Report. - 2005. - 59 p.
28 .Diego O., John O., In Search of an Understandable Consensus Algorithm (Extended Version) // USENIX ATC. - 2014. - No 14 - 18 p.
29 .Flavio P Junqueira, Benjamin C. Reed, and Marco Serafini, Zab: High-performance broadcast for primary-backup systems // Dependable Systems & Networks (DSN). - 2011. - P. 245-256.
30 .How both TCP and Ethernet checksums fail // Evan Jones. - URL: https://www.evanjones.ca/tcp-and-ethernet-checksums-fail.html. (дата обращения: 20.12.2023).
31 .Comparison of d-ary Heaps // University of Waterloo URL: https://ece.uwaterloo.ca/~dwharder/aads/Algorithms/d-ary heaps/Compariso ns/ (дата обращения: 21.11.2023).
32 .TaskFlux // GitHub. - URL: https://github.com/ashenBlade/TaskFlux (дата обращения: 20.05.2024).
2. Исследование Тинькофф: как изменился рынок доставки продуктов за последние три года / [Электронный ресурс] // Тинькофф : [сайт]. — URL:
https://www.tinkoff.ru/about/news/14062023-tinkoff-research-how-e-grocer y-market-has-changed-over-the-past-three-years/. Дата публикации: 14 июня 2023 (дата обращения: 25.09.2023).
3. Исследование Tinkoff eCommerce: за год число продавцов, работающих на двух маркетплейсах, выросло на 64% / [Электронный ресурс] // Тинькофф : [сайт]. — URL:
https://www.tinkoff.ru/about/news/04072023-tinkoff-ecommerce-research-se llers-on-marketplaces/. Дата публикации: 4 июля 2023 (дата обращения: 30.09.2023).
4. Потери организаций от простоев и сбоев ИТ-систем // TAdviser, 2019. - URL:
https://www.tadviser.ru/index.php/Статья:Потери организаций от просто ев и сбоев ИТ-систем. (дата обращения: 12.10.2023).
5. App Store Downtime Cost Apple $25M in Sales // the Mac Observer. -
URL:
https://www.macobserver.com/tmo/article/app-store-downtime-cost-apple-25 m-in-sales. Дата публикации: 12 марта 2015. (дата обращения: 14.10.2023).
6. Шубинский, И. Б. Ошибки, неисправности и отказы [Текст] / И. Б. Шубинский // Надежность. — 2021. — Том 21. № 2. — С. 24-27.
7. M. van Steen and A.S. Tanenbaum, Distributed Systems. - 4th ed. - 2023. - 685 p.
8. Michael G., Kishor S. Trivedi, A classification of software faults [Текст] / Michael Grottke, Kishor S. Trivedi // Journal of Reliability Engineering Association of Japan. — 2005. — Vol 27. No 7. — P 425-438.
9. Ravishankar K. Iyer, Inhwan L., Software Fault Tolerance in Computer Operating Systems [Текст] / Ravishankar K. Iyer, Inhwan L., // University of Illinois at Urbana-Champaign. — 1995. — No 11. — P. 250-279.
10. Hamill, M., Goseva-Popstojanova, K. Exploring fault types, detection activities, and failure severity in an evolving safety-critical software system [Текст] / Hamill, M., Goseva-Popstojanova, K. // Software Quality Journal. — 2015. — Vol 23. — P 229-265.
11. Algirdas A., Jean-Claude L., Biran R., Dependability and Its Threats: A Taxonomy [Текст] / Algirdas A., Jean-Claude L., Biran R. // IFIP Advances in Information and Communication Technology. — 2004. — No 156. — P 91-120.
12. Biran R., System Structure for Software Fault Tolerance [Текст] / Biran R. // ACM SIGPLAN Notices. — 2003. — Vol 10. No 6. — P 437-449.
13 .Goutam K.S. Approaches to Software Based Fault Tolerance [Текст] / Goutam K.S. // Computer Science Journal of Moldova. — 2005. — Vol 13. No3. —P 193-231.
14 .Premathas S., Radu C., Rajkumar B., High-Availability Clusters: A Taxonomy, Survey, and Future Directions [Текст] / Premathas S., Radu C., Rajkumar B. // Journal of Systems and Software. — 2022. — No 187. — P 193-231.
15 .Christian E., Symmetric Active/Active High availability for High-Performance Computing System services, Ph. D. thesis, The University Of Reading, 2008, 186 p.
16 .RFC 9293 Transmission Control Protocol (TCP) // IETF | Internet Engineering Task Force. - URL: https://www.ietf.org/rfc/rfc9293.pdf (дата обращения: 02.11.2023).
17 .Atomic Commit In SQLite // SQLite. - URL: https://sqlite.org/atomiccommit.html (дата обращения: 23.10.2023).
18 .Thanumalayan S.P., Vijay C., Ramnatthan A., Samer A.K., Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau, All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications // USENIX Symposium on Operating Systems Design and Implementation. - 2014. - No 11. - P 433-448.
19 .RFC 896 Congestion Control in IP/TCP Internetworks // IETF | Internet Engineering Task Force. - URL: https://datatracker.ietf.org/doc/html/rfc896 (дата обращения: 14.10.2023).
20 .Anthony R., Yuvraj P., Ramnatthan A., Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau Can Applications Recover from fsync Failures? [Текст] / Anthony R., Yuvraj P., Ramnatthan A., Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau // USENIX Symposium on Operating Systems Design and Implementation. — 2020. — Vol. 17 No. 12 — P 753-767.
21 . Server Operator Documentation / [Электронный ресурс] // RabbitMQ : [сайт]. — URL: https://www.rabbitmq.com/ (дата обращения: 14.09.2023).
22 .Documentation / [Электронный ресурс] // Redis : [сайт]. — URL: https://redis.io/ (дата обращения: 14.09.2023).
23 .Apache ActiveMQ Artemis Documentation / [Электронный ресурс] // Apache ActiveMQ : [сайт]. — URL:
https://activemq.apache. org/components/artemis/documentation/ (дата обращения: 15.09.2023).
24 .Яшкардин В. IEEE 754 - стандарт двоичной арифметики с плавающей точкой /Яшкардин В. [Электронный ресурс] // UNUX : [сайт]. — URL: https://uneex.ru/static/ieee754/ieee754.html. Дата публикации: 04.06.2012 (дата обращения: 20.09.2023).
25 .Leslie L. The Part-Time Parliament // ACM Transactions on Computer Systems. - 1998. - No. 16. - 33 p.
26 .Tushar D. Chandra, Robert G., Joshua R., Paxos made live: an engineering perspective // Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing. - 2007. - No 16. - P. 398-407.
27 .Leslie L. Generalized Consensus and Paxos // Microsoft Research Technical Report. - 2005. - 59 p.
28 .Diego O., John O., In Search of an Understandable Consensus Algorithm (Extended Version) // USENIX ATC. - 2014. - No 14 - 18 p.
29 .Flavio P Junqueira, Benjamin C. Reed, and Marco Serafini, Zab: High-performance broadcast for primary-backup systems // Dependable Systems & Networks (DSN). - 2011. - P. 245-256.
30 .How both TCP and Ethernet checksums fail // Evan Jones. - URL: https://www.evanjones.ca/tcp-and-ethernet-checksums-fail.html. (дата обращения: 20.12.2023).
31 .Comparison of d-ary Heaps // University of Waterloo URL: https://ece.uwaterloo.ca/~dwharder/aads/Algorithms/d-ary heaps/Compariso ns/ (дата обращения: 21.11.2023).
32 .TaskFlux // GitHub. - URL: https://github.com/ashenBlade/TaskFlux (дата обращения: 20.05.2024).
Материалы, размещаемые в каталоге, с согласия автора, могут использоваться только в качестве дополнительного инструмента для решения имеющихся у вас задач,
сбора информации и источников, содержащих стороннее мнение по вопросу, его оценку, но не являются готовым решением.
Пользователь вправе по собственному усмотрению перерабатывать материалы, создавать производные произведения,
соглашаться или не соглашаться с выводами, предложенными автором, с его позицией.
Тема: | Разработка отказоустойчивого менеджера приоритетных очередей |
Артикул: | 9106800 |
Дата написания: | 23.05.2024 |
Тип работы: | Дипломная работа |
Предмет: | Программирование |
Оригинальность: | Антиплагиат.ВУЗ — 76% |
Количество страниц: | 137 |
Скрин проверки АП.ВУЗ приложен на последней странице.
В работе представлены только пояснительная записка и листинг программы. Самой программы нет
В работе представлены только пояснительная записка и листинг программы. Самой программы нет
Файлы артикула: Разработка отказоустойчивого менеджера приоритетных очередей. А также похожие готовые работы: страница 57 по предмету программирование
Пролистайте "Разработка отказоустойчивого менеджера приоритетных очередей. А также похожие готовые работы: страница 57" и убедитесь в качестве
После покупки артикул автоматически будет удален с сайта до 17.01.2025
Посмотреть остальные страницы ▼
Честный антиплагиат!
Уникальность работы — 76% (оригинальный текст + цитирования, без учета списка литературы и приложений), приведена по системе Антиплагиат.ВУЗ на момент её написания и могла со временем снизиться. Мы понимаем, что это важно для вас, поэтому сразу после оплаты вы сможете бесплатно поднять её. При этом текст и форматирование в работе останутся прежними.
Гарантируем возврат денег!
Качество каждой готовой работы, представленной в каталоге, проверено и соответствует описанию. В случае обоснованных претензий мы гарантируем возврат денег в течение 24 часов.
Утром сдавать, а работа еще не написана?
Через 30 секунд после оплаты вы скачаете эту работу!
Сегодня уже купили 25 работ. Успей и ты забрать свою пока это не сделал кто-то другой!
ПРЕДЫДУЩАЯ РАБОТА
Мультимедийная образовательная платформа адаптивного обучения для студентов медицинских специальностей
СЛЕДУЮЩАЯ РАБОТА
Информационные технологии (ОТВЕТЫ на вступительный тест Синергия/МТИ/МОСАП)