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

OSCHINA-MIRROR/Ddull-stuck-link

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

stuck-link

Введение

stuck-link — это платформа для создания коротких анонимных цепочек переадресации с высокой степенью параллелизма и возможностью вторичной разработки. Она обеспечивает гибкий механизм настройки по умолчанию, поддерживает генерацию двумерных кодов и легко развёртывается.

Демо-сайт: stuck.top

Архитектура программного обеспечения

  • ├─ db — управление версиями базы данных;
  • ├─ stuck-link-admin — система управления интерфейсом;
  • ├─ stuck-link-charts — графический интерфейс;
  • ├─ stuck-link-core — основной модуль;
  • ├─ stuck-link-redirect — модуль выполнения коротких цепочек (основная функция).

Инструкция по установке

  1. Компиляция и развёртывание исходного кода:
    1. Измените файл конфигурации application.yml в модуле stuck-link-redirect, указав источник данных и источник кэша.
    2. Скомпилируйте модуль stuck-link-redirect: mvn clean package.
    3. Поместите файл stuck-link-redirect.jar из каталога target на сервер и запустите его: nohup java -jar stuck-link-redirect.jar &.
  2. Развёртывание службы stuck-link-redirect с помощью Docker:
    1. На основе исходного кода внесите изменения в файл конфигурации application.yml.
    2. Соберите весь проект на сервере: mvn clean package.
    3. Запустите команду Docker: docker build для создания образа Docker.
  3. Развёртывание скомпилированного пакета jar:
    1. Загрузите последнюю стабильную версию пакета: stuck-link-redirect.jar.
    2. Отрегулируйте файл конфигурации application.yml.
    3. Выполните развёртывание.

Использование

  1. Функция короткой цепочки:
    1. Переадресация короткой цепочки: http://stuck.top/zaeJ9t.
    2. Создание короткой цепочки: http://stuck.top/short?www.taobao.com или http://stuck.top/short?http://www.taobao.com.
    3. Восстановление реального адреса короткой цепочки: http://stuck.top/restore?http://stuck.top/zaeJ9t или http://stuck.top/restore?stuck.top/zaeJ9t.
  2. Двумерный код короткой цепочки:
    1. Интерфейс двумерного кода: http://link.stuck.top/img/zaeJ9t.
  3. Анонимный доступ:
    1. http://link.stuck.top?www.baidu.com или http://link.stuck.top?http://www.baidu.com.
  4. Статистика доступа:
    1. В будущем будет добавлена функция статистики.

Конфигурация

  1. stuck.address — адрес этого открытого проекта gitee, который также является адресом перехода по умолчанию для несуществующих коротких цепочек.
  2. stuck.server-path — адрес сервера, на котором развёрнута короткая цепочка, используется для генерации длинных адресов коротких цепочек; неправильная конфигурация может привести к невозможности восстановления реальных адресов через короткие цепочки!
  3. По умолчанию отключена графическая API-функция для статистики доступа, которая может быть включена путём установки параметра link.charts.api-enabled.
  4. По умолчанию асинхронные задачи отключены, что можно включить, установив параметр link.async.enabled.
  5. По умолчанию используется менеджер памяти для управления кешем, который можно настроить с помощью параметра link.cache.type; в настоящее время поддерживаются memory (без поддержки времени истечения срока действия кеша) и redis.
  6. По умолчанию длина короткой цепочки составляет 6 цифр, которую можно настроить, изменив параметр link.code-length.
  7. Параметр link.accessToken используется для проверки прав доступа при раскрытии интерфейса, по умолчанию он пуст.

Разработка

Проект использует традиционную модель производителя, конвейера и потребителя, а также предоставляет гибкие возможности управления кешем.

  1. Построение интерфейса: Builder, используется для преобразования запроса HttpServletRequest в объект передачи.
    1. Реализация по умолчанию: MessageBuilder, преобразует HttpServletRequest в сообщение.
  2. Интерфейс производителя: Producer, необходимо связать соответствующий Builder для записи объекта передачи в конвейер.
    1. Реализация по умолчанию: MessageProducer, записывает сообщение в конвейер.
  3. Интерфейс конвейера: Pipeline, структура конвейера представляет собой очередь, предоставляющую методы для постановки в очередь и удаления из очереди, а также поддерживающую получение длины объектов в конвейере.
    1. Реализация по умолчанию: MessagePipline, абстрактный класс конвейера сообщений, обеспечивающий методы постановки сообщения в очередь и извлечения из очереди.
    2. Реализация класса: ArrayBlockingQueuePipeline, реализация конвейера с использованием ArrayBlockingQueue в качестве нижнего уровня, использующая общую блокировку чтения-записи, производительность относительно низкая.
    3. Реализация класса: LinkedBlockingQueuePipeline, реализация конвейера с использованием LinkedBlockingQueue в качестве нижнего уровня, использование отдельной блокировки чтения и записи, производительность выше.
  4. Интерфейс потребителя: Consumer, используется для обработки объектов передачи.
    1. Реализация по умолчанию: MessageConsumer, используется для потребления объектов сообщений.
    2. Реализация класса: SimpleMessageConsumer, выводит объекты сообщений на System.out.println.
    3. Реализация класса: DataBaseMessageConsumer, записывает объекты сообщений в базу данных.

Участие в разработке

  1. Fork этот репозиторий.
  2. Создайте ветку Feat_xxx.
  3. Отправьте код.
  4. Создайте запрос на вытягивание.

Поиск и устранение проблем

Мы приветствуем ваши вопросы и поддержку, поскольку проект постоянно обновляется. Ваши вопросы и поддержка являются для нас самой большой мотивацией!

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

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

Введение

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

Обновления

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

Участники

все

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

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