JarsLink: модульная среда разработки на основе Java, созданная Alibaba.

Java открытый источник Информация

Build Status Coverage Status Maven Central License

JarsLink (ранее известный как Titan) — это модульная среда разработки на основе JAVA, которая обеспечивает динамическую загрузку модулей (пакет JAR), выгрузку модулей и API-интерфейсы для вызова между модулями во время выполнения.

  • Применение сплитов более или менее проблематично. Многие из них дороги в обслуживании, и каждый раз выпускается куча приложений. По крайней мере, стоимость разделения высока, а бесполезные функции сложно вывести в офлайн.
  • Неисправности не являются изолированными. Когда система разрабатывается несколькими людьми одновременно, изменение функции А может повлиять на функцию Б и вызвать сбои.
  • Многоотраслевая разработка вызывает конфликты. После завершения многоветвевой разработки слияние вызовет конфликты.
  • Потяните все тело. Изменение основного кода или базовое обновление Jar требует возврата всей системы.
  • Обновления и миграции стоят дорого. Обновление ПО промежуточного слоя Каждое приложение имеет стоимость обновления.

Преимущества модульной разработки

  • Подключаемое приложение состоит из нескольких модулей, модули в приложении можно разбирать и комбинировать, а модули можно быстро переносить и развертывать в нескольких системах.
  • Модульная разработка, модули изолированы друг от друга для обеспечения изоляции неисправностей.
  • Один модуль, одна ветка, никаких конфликтов кода.
  • Добавление или изменение функций в модуле повлияет только на текущий модуль, а не на все приложение.
  • Динамическое развертывание, развертывание модулей в приложениях во время выполнения, быстрое исправление ошибок и повышение эффективности выпуска.
  • Развертывание нескольких версий, вы можете одновременно развернуть старую и новую версии модуля для AB TEST.
  • Сократите потребление ресурсов и сократите количество приложений и машин за счет развертывания модулей.

Сценарии применения JarsLink

  • Интеграционный тест микросервиса. В настоящее время микросервис представляет собой FAT JAR. Если есть десятки микросервисов, необходимо запустить много процессов и будет много портов DEBUG. Используйте структуру JarsLink для слияния FAT JAR, а затем направляйте запросы в другие файлы JAR. Запустите процесс тестирования DEBUG.
  • В центре управления данными есть много источников данных для сбора данных, и каждый источник данных должен быть подключен и разработан.Благодаря модульной разработке один источник данных может быть связан с одним модулем.
  • Система расчета индикатора, каждая ТЕМА имеет модуль, и пересылает сообщение в модуль для обработки сообщения.
  • В системе фонового управления почти каждая система имеет требования к фоновой разработке.Новые приложения имеют большое количество приложений и высокие затраты на обслуживание.Введена модульная разработка, и для разработки фоновых функций используется один модуль на один домен второго уровня.

В настоящее время несколько систем и десятки модулей микрокредитного подразделения Ant Financial используют структуру JarsLink.

Особенности Джарслинк

изоляция

  • Изоляция классов: платформа использует отдельный ClassLoader для загрузки класса каждого модуля, и каждый модуль может зависеть от разных версий одной и той же платформы.
  • Изоляция экземпляра: платформа создает независимый контекст Spring для каждого модуля для загрузки BEAN в модуль, и сбой создания экземпляра не повлияет на другие модули.
  • Изоляция ресурсов: в будущем будет поддерживаться изоляция ресурсов между модулями, и каждый модуль будет использовать независимые ресурсы ЦП и памяти.

динамизм

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

Простота использования

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

Документация

скачать

License

JarsLink is released under the Apache 2.0 license.

Copyright 1999-2017 Alibaba Group Holding Ltd.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at following link.

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
скопировать код