Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
139fb5c
GitHub Classroom Feedback
github-classroom[bot] Nov 9, 2025
50ca89e
Setting up GitHub Classroom Feedback
github-classroom[bot] Nov 9, 2025
007011e
add deadline
github-classroom[bot] Nov 9, 2025
471ec0f
gitignore
deadlovelll Nov 9, 2025
1432dcf
serial
deadlovelll Nov 9, 2025
182e6d0
parallel
deadlovelll Nov 9, 2025
99d3423
serial + parallel
deadlovelll Nov 9, 2025
5363902
blueprint for serial impl
deadlovelll Nov 9, 2025
3d7a570
added producer
deadlovelll Nov 9, 2025
287c8b0
gitignore and compose
deadlovelll Nov 16, 2025
1c44c69
updated gitignore
deadlovelll Nov 16, 2025
e17b32c
updated a bit serial
deadlovelll Nov 16, 2025
be7cc29
docker compose + docker
deadlovelll Nov 16, 2025
550d0bb
updated gradle
deadlovelll Nov 16, 2025
8e10b19
rabbit conf
deadlovelll Nov 16, 2025
7f6fe89
producer
deadlovelll Nov 16, 2025
4d0d793
updated gitignore
deadlovelll Nov 21, 2025
59e5509
added py consumer
deadlovelll Nov 21, 2025
1e7a8ee
gitign
deadlovelll Nov 21, 2025
6cb5ec3
aggregation consumer
deadlovelll Nov 21, 2025
b0dda3d
сделал подмерж результатов
deadlovelll Nov 22, 2025
e01b858
добавлены логи
deadlovelll Nov 22, 2025
9355ec0
agg consumer
deadlovelll Nov 22, 2025
14810b5
agg consumer
deadlovelll Nov 22, 2025
8ca3ae3
covered agg consumer with lock
deadlovelll Nov 22, 2025
7e2383f
доработал аггрегатор
deadlovelll Nov 23, 2025
c106629
убрал results
deadlovelll Nov 23, 2025
24a82ea
рестурктуриазция директорий
deadlovelll Nov 23, 2025
6ee0b5f
добавлены консюмеры в компознике
deadlovelll Nov 23, 2025
6ad8833
поправлены конфиги
deadlovelll Nov 23, 2025
6f53826
доработан подьем проекта
deadlovelll Nov 23, 2025
9e03dca
добавил агрегатор в композник
deadlovelll Nov 23, 2025
8d4d911
добавил ts для отслеживания скорости работы
deadlovelll Nov 23, 2025
ac75845
добавил работу с ts в отдельный класс
deadlovelll Nov 23, 2025
11fc43e
поправлены ошибки
deadlovelll Nov 23, 2025
cd6568d
log
deadlovelll Nov 23, 2025
f0270d5
typ
deadlovelll Nov 23, 2025
fbfc3b3
chng
deadlovelll Nov 23, 2025
fa4c838
results directory
deadlovelll Nov 23, 2025
9796bfc
results
deadlovelll Nov 23, 2025
49e26c8
parallel results
deadlovelll Nov 23, 2025
0417e05
compose
deadlovelll Nov 23, 2025
347d7ae
time compare
deadlovelll Nov 23, 2025
2eda28f
final results
deadlovelll Nov 24, 2025
9d19faa
redundant md
deadlovelll Nov 24, 2025
c8fc0ae
makefile
deadlovelll Nov 24, 2025
f937fc8
final cut
deadlovelll Nov 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
.DS_Store

.idea/
*.iml

.gradle/
build/
bin/

.venv/
venv/
__pycache__/
*.pyc

*.log
Binary file removed .gradle/8.4/checksums/checksums.lock
Binary file not shown.
Binary file removed .gradle/8.4/checksums/md5-checksums.bin
Binary file not shown.
Binary file removed .gradle/8.4/checksums/sha1-checksums.bin
Binary file not shown.
Binary file not shown.
Binary file removed .gradle/8.4/executionHistory/executionHistory.bin
Binary file not shown.
Binary file removed .gradle/8.4/executionHistory/executionHistory.lock
Binary file not shown.
Binary file removed .gradle/8.4/fileChanges/last-build.bin
Binary file not shown.
Binary file removed .gradle/8.4/fileHashes/fileHashes.bin
Binary file not shown.
Binary file removed .gradle/8.4/fileHashes/fileHashes.lock
Binary file not shown.
Binary file removed .gradle/8.4/fileHashes/resourceHashesCache.bin
Binary file not shown.
Binary file removed .gradle/buildOutputCleanup/buildOutputCleanup.lock
Binary file not shown.
2 changes: 0 additions & 2 deletions .gradle/buildOutputCleanup/cache.properties

This file was deleted.

Binary file removed .gradle/buildOutputCleanup/outputFiles.bin
Binary file not shown.
Binary file removed .gradle/file-system.probe
Binary file not shown.
8 changes: 0 additions & 8 deletions .idea/.gitignore

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/compiler.xml

This file was deleted.

15 changes: 0 additions & 15 deletions .idea/gradle.xml

This file was deleted.

20 changes: 0 additions & 20 deletions .idea/jarRepositories.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/kotlinc.xml

This file was deleted.

10 changes: 0 additions & 10 deletions .idea/misc.xml

This file was deleted.

9 changes: 0 additions & 9 deletions .idea/modules.xml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules/lab_3.main.iml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules/lab_3.test.iml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

11 changes: 11 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
run_parallel:
docker compose up --build

run_parallel_optimized:
docker compose -f docker-compose-optimized.yml up --build

run_serial:
docker compose -f docker-compose-serial.yml up --build

run_serial_optimized:
docker compose -f docker-compose-serial-optimized.yml up --build
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-22041afd0340ce965d47ae6ef1cefeee28c7c493a6346c4f15d667ab976d596c.svg)](https://classroom.github.com/a/QODoQuhO)
# Распределенная обработка текстовых данных с использованием брокера сообщений

## Цель задания:
Expand All @@ -24,15 +25,15 @@ RabbitMQ --- прост в развёртывании, понятная моде
* Сортировка предложений по длине (в символах) и возврат отсортированного списка.

### Структура системы (компоненты)
1. Producer / Splitter
1. SerialProducer / Splitter
* Читает корпус, разбивает на секции (например, по параграфам, по N предложений или по байтам).
* Отправляет задания в очередь/exchange (сообщения с id задания и секцией текста).

2. Worker (несколько экземпляров)
2. SerialWorker (несколько экземпляров)
* Подписывается на очередь задач.
* Обрабатывает секцию и отправляет результат в очередь результатов/на агрегатор.

3. Aggregator / Collector
3. Aggregator / SerialCollector
* Получает частичные результаты от всех воркеров.
* Агрегирует: суммирует word counts, объединяет топ-N (merge топов), усредняет/агрегирует тональность, собирает модифицированный текст/заменённые имена (если нужно), объединяет отсортированные предложения (опционально — сохраняет per-section).

Expand Down
29 changes: 0 additions & 29 deletions build.gradle.kts

This file was deleted.

110 changes: 110 additions & 0 deletions docker-compose-optimized.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
services:
java_producer:
build:
context: java_prodcuer
dockerfile: Dockerfile
ports:
- "8000:8000"
depends_on:
- consumer_1
- rabbitmq
command: ["sh", "-c", "sleep 5 && java -Xmx1g -jar app.jar"]

consumer_1:
build:
context: python_consumer
dockerfile: Dockerfile.optimized
ports:
- "8001:8001"
depends_on:
- aggregation_consumer
- rabbitmq
environment:
PYTHONPATH: "./"
volumes:
- shared_results:/app/results
command: ["sh", "-c", "sleep 5 && python parallel_consumer/parallel/parallel.py"]

consumer_2:
build:
context: python_consumer
dockerfile: Dockerfile.optimized
ports:
- "8002:8002"
depends_on:
- consumer_1
- rabbitmq
- aggregation_consumer
environment:
PYTHONPATH: "./"
volumes:
- shared_results:/app/results
command: ["sh", "-c", "sleep 5 && python parallel_consumer/parallel/parallel.py"]

consumer_3:
build:
context: python_consumer
dockerfile: Dockerfile.optimized
ports:
- "8003:8003"
depends_on:
- consumer_2
- rabbitmq
- aggregation_consumer
environment:
PYTHONPATH: "./"
volumes:
- shared_results:/app/results
command: ["sh", "-c", "sleep 5 && python parallel_consumer/parallel/parallel.py"]

consumer_4:
build:
context: python_consumer
dockerfile: Dockerfile.optimized
ports:
- "8004:8004"
depends_on:
- consumer_3
- rabbitmq
- aggregation_consumer
environment:
PYTHONPATH: "./"
volumes:
- shared_results:/app/results
command: ["sh", "-c", "sleep 5 && python parallel_consumer/parallel/parallel.py"]

aggregation_consumer:
build:
context: python_consumer
dockerfile: Dockerfile
ports:
- "8005:8005"
depends_on:
- rabbitmq
environment:
PYTHONPATH: "./"
volumes:
- shared_results:/app/results
command: ["sh", "-c", "sleep 5 && python aggregation_consumer/aggregation/aggregation.py"]

rabbitmq:
image: rabbitmq:3.13-management
container_name: rabbitmq
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
volumes:
- rabbitmq_data:/var/lib/rabbitmq
- ./rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
restart: unless-stopped

volumes:
rabbitmq_data:
shared_results:

networks:
appnet:
driver: bridge
62 changes: 62 additions & 0 deletions docker-compose-serial-optimized.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
services:
java_producer:
build:
context: java_prodcuer
dockerfile: Dockerfile
ports:
- "8000:8000"
depends_on:
- consumer_1
- rabbitmq
command: ["sh", "-c", "sleep 5 && java -jar app.jar"]

consumer_1:
build:
context: python_consumer
dockerfile: Dockerfile.optimized
ports:
- "8001:8001"
depends_on:
- aggregation_consumer
- rabbitmq
environment:
PYTHONPATH: "./"
volumes:
- shared_results:/app/results
command: ["sh", "-c", "sleep 5 && python serial_consumer/serial/serial.py"]

aggregation_consumer:
build:
context: python_consumer
dockerfile: Dockerfile
ports:
- "8005:8005"
depends_on:
- rabbitmq
environment:
PYTHONPATH: "./"
volumes:
- shared_results:/app/results
command: ["sh", "-c", "sleep 5 && python aggregation_consumer/aggregation/aggregation.py"]

rabbitmq:
image: rabbitmq:3.13-management
container_name: rabbitmq
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
volumes:
- rabbitmq_data:/var/lib/rabbitmq
- ./rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
restart: unless-stopped

volumes:
rabbitmq_data:
shared_results:

networks:
appnet:
driver: bridge
Loading