x-downloader — это распределённый загрузчик, поддерживающий загрузку файлов по протоколам HTTP и FTP (включая поддержку загрузки m3u8 файлов).
Загрузчики имеют несколько веток:
biz_rpc_dev ветка: распределённый загрузчик на основе Netty с RPC (в процессе разработки)
nacos_mq ветка: распределённый загрузчик на основе Nacos и RabbitMQ (завершена)
Этот загрузчик использует стратегии планирования и распределения, объединённые с моделью производителя-потребителя, что позволяет естественно поддерживать следующие возможности:
динамическое изменение скорости загрузки (количество одновременно загружаемых файлов), просмотр прогресса загрузки, приоритетная загрузка (через MQ и внутреннюю очередь с приоритетами), возможность возобновления загрузки с пропущенного места, динамическое горизонтальное масштабирование (добавление новых узлов загрузки).
Описание архитектуры
Ссылка на онлайн-схему архитектуры: https://www.processon.com/view/link/61e5236563768906b3e9a052
@RpcClient
, генерируются через динамическое прокси-соединение, создающее объекты, способные автоматически передавать данные через Netty, и внедряющиеся в контейнер Spring IOCclass Test { // Или через @Autowired @Autowired private ServiceB serviceb;
// Использование удалённого сервиса
public void test() {
serviceb.register(new BasicFrame());
}
} // Сервис B // Целевой метод @RpcComponent("ServiceB") public class ServiceB { @RpcHandler("register") public void register(BasicFrame frame) { // Вывод данных BasicFrame log.info(frame); } }
#### Технологические особенности
##### 8. Модель планирования задач

##### 7. Модель обработки множества задач

##### 6. Группа клиентов

##### 5. Три модели архитектуры

##### 4. Схема обеспечения высокой доступности серверной части

##### 3. Быстрая и медленная буферные очереди

##### 2. Очередь временной и пространственной обработки

##### 1. Распределение таблицы маршрутизации

### Версия Nacos + RabbitMQ

#### Инструкция по использованию
Описание параметров задачи```json
{
"timestamp": 1600000000, // отметка времени
"task": { // задача скачивания
"id": 1001, // идентификатор задачи
"retryCount": 0, // количество попыток повторной отправки
"sourceFtpUrl": "ftp://xxx", // исходный адрес FTP
"targetFtpUrl": "ftp://ttt", // целевой адрес FTP
"fileType": 1, // тип файла
"priority": 10, // приоритет
"notifyUrl": "http://servername/callback/xxx", // адрес уведомления
"fileCode": "BDNxxx", // код файла
"status": 1, // состояние задачи скачивания
"startTime": 160000, // время начала скачивания
"finishTime": 160000, // время завершения скачивания
"duration": 10000, // продолжительность выполнения задачи
"taskServerInstanceId": "ip + port + xx" // уникальный идентификатор компонента nacos
}
}
```#### Участие в развитии
#### Проблемы, решаемые в следующей версии
1. [downloader] При возникновении ошибок у узлов скачивания отсутствует автоматическое распределение оставшихся задач в очередь.
2. [dispatcher] При возникновении ошибок у узлов скачивания отсутствует автоматическое распределение повторных задач в очередь.
3. [dispatcher] В случае независимости от xxljob текущий подход недостаточно совершенен.
4. Отсутствие визуализированного процесса отслеживания всего цикла задач.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )