Облачные вычисления так популярны по нескольким причинам: они гибки, относительно дешевы по сравнению с содержанием внутренней инфраструктуры и позволяют прекрасно автоматизировать распределение ресурсов (и здесь тоже есть экономия).
Когда объемы обрабатываемых данных растут из года в год, нельзя рассчитывать на вертикальную масштабируемость, приобретая все более дорогие серверы.
Данные должны быть распределены по нескольким более дешевым системам (кластерам), где их можно будет безопасно хранить, обрабатывать и при необходимости возвращать пользователю.
Построение таких систем — непростая задача, но, к счастью, существуют решения, которые идеально вписываются в облачную архитектуру.
я говорю о Апач Игнит .
Подготовка окружающей среды
Я собираюсь использовать облако AWS для развертывания кластера Ignite. В целях обучения нам будет достаточно бесплатных машин базового уровня (AWS free tier).Я выбрал образ Ubuntu 18.04, но в целом это не имеет значения.
Прежде чем развертывать первые машины, нам необходимо настроить группу безопасности.
Это должно определить сетевые правила для портов, требуемых узлами Ignite.
Рисунок 1 – Конфигурация группы безопасности
Были явно настроены два диапазона портов: диапазон портов 47500–47600 для обнаружения (механизм обнаружения, который позволяет узлам находить друг друга и формировать кластер) и диапазон 47100–47200 для подсистемы связи, которая позволяет узлам отправлять прямые сообщения.
друг другу.
Сообщения.
Теперь, когда мы настроили группу безопасности, пришло время запустить и настроить наши машины.
Рисунок 2. Группа безопасности выбирается во время подготовки экземпляра AWS.
Машины работают, но на них отсутствует базовое программное обеспечение: Java. Нет проблем, просто используйте следующую команду для установки Java:
Команда для пакетов RedHat/Centos выглядит немного иначе:~/sudo apt install openjdk-8-jdkс
~/sudo yum install java-1.8.0-openjdk.x86_64
Большой! Мы всего в одном шаге от запуска первого экземпляра Ignite в облаке! Я загрузил с официального сайта бинарный пакет версии 2.7.6 и распаковал его:
~/ignite$ wget http://mirror.linux-ia64.org/apache//ignite/2.7.6/apache-ignite-2.7.6-bin.zip
~/ignite$ unzip apache-ignite-2.7.6-bin.zip
~/ignite/apache-ignite-2.7.6-bin$ .
/bin/ignite.sh
Рисунок 3 – Первый узел работает Мы уже добились большого прогресса: подготовили среду, придумали, где брать бинарники и как их запускать.
Пришло время собрать кластер.
Запуска группы нод недостаточно для построения кластера, и это становится очевидным из логов: у каждой ноды в логах есть такая строка:
Рисунок 4 – Два узла сформировали два независимых кластера
Это сообщение означает, что два узла сформировали два независимых кластера вместо того, чтобы обнаружить друг друга и слиться в один.
Чтобы создать настоящую кластерную среду, вам необходимо глубже понять, как узлы объединяются в кластер.
Особую роль в этом процессе играет специальный сервис Discovery. Именно это позволяет узлам находить друг друга и формировать кластер.
Когда узел запускается, первое, что он делает, — это отправляет запрос своему экземпляру службы Discovery, чтобы найти существующий кластер, и пытается присоединиться к нему вместо создания нового.
Параметры DiscoverySPI, позволяющие службе обнаруживать кластер, должны быть предоставлены конечным пользователем, но они просты и интуитивно понятны.
Все, что нам нужно сделать, это настроить IpFinder (компонент для поиска IP-адресов существующих узлов) и передать его в Discovery. Давайте сделаем это и соберем разрозненные узлы в единую систему.
Откройте файл конфигурации в вашем любимом текстовом редакторе.
~/ignite/apache-ignite-2.7.6-bin$ vim config/default-config.xml
.
и добавьте следующий блок: <property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses">
<list>
<value>172.31.3.57</value>
</list>
Теги: #с открытым исходным кодом #Распределенные системы #aws #Amazon Web Services #apache ignite #cloud Computing
-
Долой Комментарии Из Rss-Ленты!
19 Oct, 24 -
Вы Используете Java 7?
19 Oct, 24 -
Подкаст Appleinsider [06]
19 Oct, 24