powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hazelcast как in-memory grid
25 сообщений из 34, страница 1 из 2
Hazelcast как in-memory grid
    #39159694
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я недавно на проекте и пока еще не очень хорошо его знаю. Здесь используетс hazelcast в качестве распределенного кеша.

Прочитал на хабре введение - https://habrahabr.ru/post/126580/

Там есть такая картинка:



Объясните, мне, человеку ничего не понимающего в кластерах и всяких распределенных штуках что здесь изображено?


Этот distributed cash это отдельная сущность или это ПО которое ставится на каждую jvm?

Я поначалу понял, что это просто где-то в удалёнке есть jvm, у которой есть HashMap и мы к ней стучимся с любой машины в кластере и счастья достигаем, но кажется не всё так просто.

Объясните плиз
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39159837
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых. На картинке изображён кластер из 3 узлов. А бесплатная лицензия позволяет использовать только два. Значит, выяснить, подойдёт ли это. Hazelcast кеширует Java-объекты между узлами кластера для быстрого доступа к ним. Поскольку Java-объекты существуют внутри JVM, то копирование происходит между JVM (то есть обычно между разными компьютерами в сети). Таким образом, в картинке имеется ввиду, что есть несколько компьютеров. Кластер у Hazelcast - свой, не имеет отношения к другим кластерам, если они есть. Для наблюдения надо его работой и проверки, что вообще работает, полезно установить Mancester (он же Hazelcast Management Center).
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39159875
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Partisan M,

то есть грубо говоря можно сделать так, что есть 3 jvm(вопрос лицензии оставим за скобками), между которыми я хочу шарить объекты.
Эти три приложения будут стучаться к одному и тому же инстансу hazelcast ?

У Hazelcast, когда его заводишь, есть какой-то идентификатор?
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39159907
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А near cash тогда где хранится? На той же жвм ?
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39159920
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, я мог забыть, надо самостоятельно посмотреть условия бесплатной и коммерческой лицензии.
Hazelcast - библиотека, устанавливаемая на каждом компьютере. Затем в настройках Hazelcast создать кластер (на каждом компьютере указать адрес кластера). На одном из компьютеров для администрирования установить Tomcat, в него Mancester и в нём проверить, что кластер работает. Больших знаний по Hazelcast у меня нет, но на сайтах Hazelcast есть подробная документация.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39159949
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Partisan M,

Да мне пока глубоких знаний и не надо.

Хочу понять как это работает на высоком уровне.

про near cash я тогда не понял. В чем его near
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39159954
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот ещё на SO почитал:
http://stackoverflow.com/tags/hazelcast/info Hazelcast is an open source In-Memory Data Grid platform for Java. The architecture supports high scalability and data distribution in a clustered environment. It supports auto-discovery of nodes and intelligent synchronization.

Что такое

http://stackoverflow.com/tags/hazelcast/info auto-discovery of nodes
?

Что такое

http://stackoverflow.com/tags/hazelcast/info intelligent synchronization

?
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39160046
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerпро near cash я тогда не понял. В чем его near
В том, что он на локальном комьютере для ускорения доступа. Вообще объект в кластере может оказаться на локальном или удалённом компьютере для обратившейся к нему программы. Near Cache позволяет сделать локальную копию. Рекомендуется в случае, если надо чаще читать, чем изменять объект, во избежание лишней работы по синхронизации объекта в кластере.
Но это - средство повышения скорости работы. Сначала надо добиться, чтоб вообще работало.

questionerauto-discovery of nodes
Автоматическое обнаружение из одного узла кластера других подключённых в настоящее время узлов. Есть 3 способа (описаны в докуметнации), например, по их адресу в сети.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39160332
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Partisan M,

Partisan MАвтоматическое обнаружение из одного узла кластера других подключённых в настоящее время узлов

Тут речь про узлы нашего приложения или про узлы самого HazelCast?

и зачем их вообще обнаруживать?
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39160446
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про узлы кластера. Кластер есть у Hazelcast-а, а не у приложения. Обычно узлы находятся на разных компьютерах. Автоматическое обнаружение позволяет из одного узла узнать, какие другие сейчас работают в кластере. Например, в настройках можно указать все возможные узлы кластера (хотя это необязательно). Но какие из них работают - надо узнавать в процессе работы. Какие-то могут быть отключены.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39160739
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Partisan M,

А мне как клиенту этой хэш-мапы зачем знать как она там внутри устроена? зачем знать сколько там внутри узлов?
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39160881
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это нужно знать не клиенту, а Hazelcast-у. В его кластере работа распределяется между узлами. Значит, Hazelcast-у надо знать, какие узлы активны. В процессе работы узлы могут появляться или исчезать (потому что обычно они находятся на разных компьютерах в сети). Например, включили компьютер - Hazelcast-у надо знать, что его можно использовать в кластере. Функция автоматического обнаружения этим и занимается. Клиент обращается не к узлам, а к Hazelcast-у, поэтому ему знать не нужно (в чём можно убдиться, посмотрев программные примеры - там не указываются ни узлы, ни кластер).
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39160943
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Буквально вчера слушал про JMS. Hazelcast упоминался. Где-то здесь

YouTube Video
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39161631
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Ну, там очень в скользь про Hazelcast, но доклад отличнейший.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39161727
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доклад плохой. Автор говорит на языке пиджин-инглиш (приходится переводить на русский) и не разбирается в темах, которые упоминает. Так, два мифа о JMS, которые он пытался опровергнуть, открывая (якобы) страшную тайну о недостатках JMS, остались неопровергнутыми (просто надо уметь пользоваться). Большинство предложенных им альтернатив не являются альтернативами. Например, он ругал JMS за потерю сообщений, но в предложенных им альтернативах Hazelcast, ZeroMQ и Redis нет средств её обеспечения. Упомянуто blocking queue вообще не по делу. Что такое ZeroMQ, он не понял.
Из того, что перечислено, реальная альтернатива JMS - AMQP. Это протокол и API, с AMQP работает например служба доставки сообщений RabbitMQ. Он неоднократно упоминал RabbitMQ и даже AMQP, но сам не понял, что это такое. Высказывание, что AMQP проще, чем JMS, заставляет сделать вывод, что с AMQP лучше знакомиться без помощи этого оратора. RabbitMQ можно использовать для JMS, но только потому, что к нему предоставляются адаптеры преобразования сообщений между JMS и AMQP. Но это не обязательно - есть клиентская библиотека для работы с AMQP, которую можно использовать с RabbitMQ.
В Hazelcast встроена простая функциональность доставки сообщений, но она предназначена только для работы с Hazelcast и не обеспечивает надёжного хранения сообщений, поэтому в качестве замены JMS рассматривать нелепо. Наоборот, если возможностей сообщений Hazelcast окажется недостаточно, то может появиться смысл использовать JMS или ещё что.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39161773
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MДоклад плохой. Автор говорит на языке пиджин-инглиш (приходится переводить на русский)
Практически все айтишнки Украины так говорят. Поначалу меня это коробило, но погуляв лет 5 по
семинарам - привык и не замечаю. В принципе непонятных слова там нет, но возможно были
ошибочные артикуляции или неверные склонения англоицизмов.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39161841
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, мысль была в том, что альтернативы JMS есть. Но не надо использовать программные средства не по назначению.
В дополнение к Hazelcast: он сказал, что там есть бэкап сообщений с одного узла на другие узлы кластера. Надо иметь ввиду, что этим не обеспечивается долговременное хранение сообщений (его надо программировать дополнительно). Просто если один узел отключится во время работы, то его объекты уже окажутся сохранёнными на других узлах, и после отключения этого узла будут восстановлены в их кеш.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39161962
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне изначально не понравилась идея передавать в месседже ID-шник который ссылается
на какое-то третье хранилище. В этом есть какая-то натяжка...
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39162313
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MДоклад плохой. Автор говорит на языке пиджин-инглиш (приходится переводить на русский) и не разбирается в темах, которые упоминает.
А по-моему он в конце и проясняет этот момент для тех кто не понял. JMS, до недавнего времени, был единственным способом поиметь асинхронные процессы в JEE. Докладчик же предлагает смотреть на проблему шире и перечисляет все другие способы.

Можешь пояснить про ZeroMQ? Из доклада сложно понять что оно вообще такое.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39162314
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМне изначально не понравилась идея передавать в месседже ID-шник который ссылается
на какое-то третье хранилище. В этом есть какая-то натяжка...
Ну, а если у тебя толстные объекты, то как иначе?
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39162324
base2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczJMS, до недавнего времени, был единственным способом поиметь асинхронные процессы в JEE
Был еще Quartz scheduler вроде
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39162330
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczmaytonМне изначально не понравилась идея передавать в месседже ID-шник который ссылается
на какое-то третье хранилище. В этом есть какая-то натяжка...
Ну, а если у тебя толстные объекты, то как иначе?
Не знаю. Я просто рассуждаю вслух. Насколько я понимаю сервис рассылки сообщений
предполагает что сообщение рано или поздно должно быть доставлено. И если мы
исходим из предположения что Subscriber (или Consumer) всё равно будет вычитывать
по ID-шнику содержание то он будет делать обращение в хранилище. И если это обращение
будет синхронным (а как иначе?) то теряется весь смысл. Мы должны собрать всё сообщение
из его составных частей. И суммарный объём сетевого трафика в этой топологии будет
еще больше чем в простом варианте (я так думаю. Не берусь доказывать пока).

Если имелась в виду другая схема (со множество Subscriber-ов) или схема при которой
мессежд содержит опциональные поля или поля которые будут по ID-шнику вычитываться
не всегда (а скажем в 1-3% всех случаев) то это предложение имело-бы смысл.

Вобщем всё что я щас сказал это ИМХО.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39163190
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сообщение доставлено, но у подписчика есть собственный фильтр из-за которого "вот эта группа сообщений" вообще не будет читаться.
Зачем доставлять то, что (возможно) никогда не будет востребовано?
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39163433
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MВ дополнение к Hazelcast: он сказал, что там есть бэкап сообщений с одного узла на другие узлы кластера. Надо иметь ввиду, что этим не обеспечивается долговременное хранение сообщений (его надо программировать дополнительно).

Долговоменненнное хранение реализуется средствами map-store например, и не представляет проблем. Так же в Hazelcast есть политики вытеснения и подсчёт статистики для определения что нужно хранить в памяти, а что помещать в долговременное хранилище.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39181406
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Внутри hazelcast есть очередь сообщений.

Она соответствует спецификации jms ?
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Hazelcast как in-memory grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]