• Как запустить Java-приложение с несколькими версиями одной библиотеки в 2017 году

    Как запустить Java-приложение с несколькими версиями одной библиотеки в 2017 году


    КДПВ, ничего интересного


    Хочу поделиться решениями одной проблемы, с которой мне пришлось столкнуться, плюс исследование данного вопроса в контексте Java 9.


    дисклеймер

    Писатель из меня ещё тот (пишу в первый раз), поэтому закидывание вкусными помидорами с указанием причин только приветствуется.
    Сразу договоримся, что статья не годится в качестве руководства по:


    • Java 9
    • Elasticsearch
    • Maven

    Если по последним именам информации в сети полно, то по первому… со временем появится, по крайней мере здесь есть необходимая информация.


    Представим себе простую ситуацию: разворачиваем кластер Elasticsearch и загружаем в него данные. Мы пишем приложение, которое занимается поиском в этом кластере. Поскольку постоянно выходят новые версии Elasticsearch, мы привносим в кластер новые проблемы фичи с помощью rolling upgrade. Но вот незадача — в какой-то момент у нас сменился формат хранимых данных (например, чтобы максимально эффективно использовать какую-то из новых фич) и делать reindex нецелесообразно. Нам подойдёт такой вариант: ставим новый кластер на этих же машинах — первый кластер со старой схемой данных остаётся на месте только для поиска, а поступающие данные загружаем во второй с новой схемой. Тогда нашему поисковому компоненту потребуется держать на связи уже 2 кластера.

    Читать дальше →
    • +23
    • 11.2k
    • 2