powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hazelcast как in-memory grid
34 сообщений из 34, показаны все 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
Hazelcast как in-memory grid
    #39181930
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerОна соответствует спецификации jms ?

Я кому писал, что не соответствует и вообще имеет иное назначение, так как не предназначена для долговременного хранения сообщений? На сайте Hazelcast подробная документация, можно было бы заглянуть.

GregTkДолговоменненнное хранение реализуется средствами map-store например, и не представляет проблем.

Представит проблемы, если какой-нибудь идиот возжелает заменить им JMS, как это предлагает автор знаменитого доклада. Придётся программировать половину замены JMS (в Hazelcast нужно своё программирование), и никаких гарантий, что получится лучше, чем JMS.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39183037
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Partisan MЯ кому писал, что не соответствует и вообще имеет иное назначение, так как не предназначена для долговременного хранения сообщений

почему?
Какие проблемы это за собой влечёт?
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39256358
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторThe data will be stored as an array of bytes
I got this information from The Book of Hazelcast so it is really not an assumption. This is important because not only is the data stored that way, so is the key. This makes life very interesting if one uses something other than a primitive or a String as a key. The developer of hash() and equals() must think about it in terms of the key as an array of bytes instead of as a class.

Можете как-то пояснить эту фразу?
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39256706
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот ползаю по сайту

http://hazelcast.org/features/
https://hazelcast.com/

и ищу опции WAL(Write-Ahead-Log) сериализацию состояния БД e.t.c. И пока не могу найти.

Возможно это опции Enterprise HD, Enterprise?

Вобщем кто этот Хазел-Каст раскурил - прошу дать прояснения.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39256774
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Самое близкое к вашей задаче это вот MapStorage
Там есть опции по стратегии сохранения, этого гипотетически должно хватить
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39256967
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTkmayton,
Самое близкое к вашей задаче это вот MapStorage
Там есть опции по стратегии сохранения, этого гипотетически должно хватить
Спасибо. Но я разочарован. Во первых тут используется HSQL. Во вторых я тут не увидел
никаких суровых оптимизаций по скорости append-значений ключей в журнал.
По сути вопрос вынесен за скобки и передан механизму HSQL с его настройками.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39257559
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Можно реализовать свой map-storage для того же Oracle или Mongo. При этом для оптимизации можно использовать свой собственный Serializer для объектов. Ещё можно настроить eviction policy для того что бы писать не постоянно в БД, а когда действительно идёт высокий расход памяти.
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39257988
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[youtube=
YouTube Video
...
Рейтинг: 0 / 0
Hazelcast как in-memory grid
    #39260420
Alexey Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,

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


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