Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
Ichinya committed Aug 1, 2022
0 parents commit f63be46
Show file tree
Hide file tree
Showing 2 changed files with 115 additions and 0 deletions.
35 changes: 35 additions & 0 deletions README.md
@@ -0,0 +1,35 @@
# proxy-checker-docker

Комплект по проверке прокси адресов. Включает в себя:

* [proxy-checker](https://github.com/Ichinya/proxy_cheker) - проверка прокси, потребляем примерно 15мб ОЗУ на каждый
* [proxy-producer](https://github.com/Ichinya/proxy_producer) - собирает списки прокси и отправляет на проверку, потребляем примерно 12мб ОЗУ
* rabbitmq - менеджер очередей, через него происходит отправка на проверку. Уходит на работа 150Мб
* mysql - база данных для хранения списков и результатов. Нужно для работы 300-500Мб

## Запуск

Клонируем исходники с гитхаб. Потом будет сделаны отдельные образы, чтобы запускалось двумя командами.
Запускаем сборку.
После запуска отправляем команды на сбор прокси и, вторую команду, на отправку собранных прокси на проверку

```shell
git clone https://github.com/Ichinya/proxy-checker-docker.git .
cd proxy-checker-docker
git clone https://github.com/Ichinya/proxy_producer.git .
git clone https://github.com/Ichinya/proxy_cheker.git .

docker compose -f "docker-compose.yaml" up -d --build

docker exec proxy_producer python3 update_list_proxy.py
docker exec proxy_producer python3 send_to_mq.py
```

## Примечания
В файле `docker-compose.yaml` можно найти у proxy-checker `replicas: 2` - это количество чекеров. Каждый потребляем примерно 15-20мегабайт ОЗУ. Но из-за небольшого количество сайтов проверок ip адресов получается большое количество ошибок. Нормально работает примерно 5 чекеров.

## Возможно появится:
* Работа без mysql (для уменьшения потребляемой памяти), возможно будет использован sqlite3
* Работа с файлами, закидываем файлы со списками. После проверки - получаем готовый список
* Будут сделаны готовые образы
* Будет добавлен Gearman, так как кролик немало жрёт ОЗУ.
80 changes: 80 additions & 0 deletions docker-compose.yaml
@@ -0,0 +1,80 @@
version: '3'

services:
rabbit_mq:
image: rabbitmq:management-alpine
container_name: rabbit_mq
ports:
- 5672:5672
- 15672:15672
volumes:
- rabbit_mqdata:/usr/share/rabbitmq/data
deploy:
resources:
limits:
memory: 200M
reservations:
memory: 100M

producer:
build: proxy_producer
container_name: proxy_producer
depends_on:
- rabbit_mq
- database
environment:
AMQP_URL: 'amqp://rabbit_mq?connection_attempts=10&retry_delay=10'
DB_HOST: database
DB_NAME: 'homestead'
DB_PORT: 3306
DB_USER: 'user'
DB_PASS: 'pass'
deploy:
resources:
limits:
memory: 30M
reservations:
memory: 100M

proxy-checker:
build:
context: proxy_checker
depends_on:
- rabbit_mq
- database
environment:
AMQP_URL: 'amqp://rabbit_mq?connection_attempts=10&retry_delay=10'
deploy:
mode: replicated
replicas: 2
resources:
limits:
memory: 30M
reservations:
memory: 100M

database:
image: mysql:8
container_name: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
volumes:
- ./db:/var/lib/mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: homestead
MYSQL_USER: user
MYSQL_PASSWORD: pass
deploy:
resources:
limits:
memory: 500M
reservations:
memory: 200M

volumes:
rabbit_mqdata:
driver: local

0 comments on commit f63be46

Please sign in to comment.