1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xwlcn-Dodder

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Один из поддерживающих кластерное развёртывание распределённый DHT-сетевой паук.


Быстрое начало

Зависимости среды:

Демонстрационный адрес:

https://dodder.cc

announce_peer messages: announce_peer

Одномашинная среда выполнения:

  • CPU: Intel Xeon E3-1230 v3 — 3,3 ГГц — 4 ядра
  • RAM: 32 ГБ — DDR3
  • Жёсткий диск(и): 2x 1 ТБ (HDD SATA)
  • Пропускная способность: безлимитная @ 1 Гбит/с

Журнал обновлений:

  • 2019-10-25
    • Обновление MongoDB, развёрнутой на сервере, до версии 3.6.8, которая часто зависала без журнала ошибок
    • Использование пула соединений MongoDB
    • Удаление сообщений темы indexMessages, индексация и сохранение в базе данных с использованием одной и той же темы сообщений torrentMessages (с использованием разных групп), уменьшение сетевого трафика и использования диска
    • Исключение запроса на дедупликацию перед загрузкой информации о семенах (несколько тысяч потоков загрузки означают несколько тысяч одновременных запросов, что слишком ресурсозатратно)
  • 2019-10-20
    • Оптимизация скорости паука, добавление блокирующего пула потоков для загрузки информации о семенах (снижение использования памяти)
    • 400 000 данных (ежедневно скачивается более 35 000 новых данных)
  • 2019-10-13
    • Сохранение данных в MongoDB, Elasticsearch используется только для индексации
    • Обновление версий всех зависимостей среды
    • Улучшение службы хранения данных, изменение режима ввода и индексации сообщений Kafka Torrent на ручной режим, чтобы предотвратить потерю данных
    • Тестирование распределённого развёртывания на двух серверах, в настоящее время успешно развёрнуто и работает:
      1. Сервер A: развёрнуты микросервисы dht-server и store-service (серверов мало, поэтому все зависимости среды, такие как Elasticsearch, находятся на этой машине)
      2. Сервер B: развёрнуты микросервисы dht-server, download-service и dodder-web
  • 2019-04-17
    • Начальная версия

Общая архитектура:

Архитектура

Описание: В проекте dht-server, download-service и store-service могут быть развёрнуты в кластере. dht-server отвечает за сбор информации info_hash из DHT-сети и запись её в очередь сообщений Kafka. download-service отвечает за чтение информации info_hash и загрузку файлов метаданных по указанному IP-адресу. Метаданные анализируются и преобразуются в объект Torrent, который записывается в тему torrentMessages в Kafka. store-service отвечает за считывание объектов Torrent и их сохранение в Elasticsearch.

Дедупликация: Redis выполняет первичную дедупликацию, MongoDB и Elasticsearch используют upsert для вставки данных во избежание дублирования.

Развёртывание

После настройки всей среды клонируйте весь проект на локальный компьютер. Если вы планируете развёртывать кластером, измените некоторые параметры IP-адресов в модулях каждого сервиса. Я развернул проект на одном сервере, но если у вас есть проблемы с развёртыванием кластера, пожалуйста, создайте issue.

Примечание

Для работы dht-сервера требуется общедоступный IP-адрес.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Расширить Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/xwlcn-Dodder.git
git@gitlife.ru:oschina-mirror/xwlcn-Dodder.git
oschina-mirror
xwlcn-Dodder
xwlcn-Dodder
master