|
|
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Я недавно на проекте и пока еще не очень хорошо его знаю. Здесь используетс hazelcast в качестве распределенного кеша. Прочитал на хабре введение - https://habrahabr.ru/post/126580/ Там есть такая картинка: Объясните, мне, человеку ничего не понимающего в кластерах и всяких распределенных штуках что здесь изображено? Этот distributed cash это отдельная сущность или это ПО которое ставится на каждую jvm? Я поначалу понял, что это просто где-то в удалёнке есть jvm, у которой есть HashMap и мы к ней стучимся с любой машины в кластере и счастья достигаем, но кажется не всё так просто. Объясните плиз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 01:17 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Во-первых. На картинке изображён кластер из 3 узлов. А бесплатная лицензия позволяет использовать только два. Значит, выяснить, подойдёт ли это. Hazelcast кеширует Java-объекты между узлами кластера для быстрого доступа к ним. Поскольку Java-объекты существуют внутри JVM, то копирование происходит между JVM (то есть обычно между разными компьютерами в сети). Таким образом, в картинке имеется ввиду, что есть несколько компьютеров. Кластер у Hazelcast - свой, не имеет отношения к другим кластерам, если они есть. Для наблюдения надо его работой и проверки, что вообще работает, полезно установить Mancester (он же Hazelcast Management Center). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 10:23 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Partisan M, то есть грубо говоря можно сделать так, что есть 3 jvm(вопрос лицензии оставим за скобками), между которыми я хочу шарить объекты. Эти три приложения будут стучаться к одному и тому же инстансу hazelcast ? У Hazelcast, когда его заводишь, есть какой-то идентификатор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 10:48 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
А near cash тогда где хранится? На той же жвм ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 11:18 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Вообще-то, я мог забыть, надо самостоятельно посмотреть условия бесплатной и коммерческой лицензии. Hazelcast - библиотека, устанавливаемая на каждом компьютере. Затем в настройках Hazelcast создать кластер (на каждом компьютере указать адрес кластера). На одном из компьютеров для администрирования установить Tomcat, в него Mancester и в нём проверить, что кластер работает. Больших знаний по Hazelcast у меня нет, но на сайтах Hazelcast есть подробная документация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 11:35 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Partisan M, Да мне пока глубоких знаний и не надо. Хочу понять как это работает на высоком уровне. про near cash я тогда не понял. В чем его near ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 12:01 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Вот ещё на 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 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 12:06 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
questionerпро near cash я тогда не понял. В чем его near В том, что он на локальном комьютере для ускорения доступа. Вообще объект в кластере может оказаться на локальном или удалённом компьютере для обратившейся к нему программы. Near Cache позволяет сделать локальную копию. Рекомендуется в случае, если надо чаще читать, чем изменять объект, во избежание лишней работы по синхронизации объекта в кластере. Но это - средство повышения скорости работы. Сначала надо добиться, чтоб вообще работало. questionerauto-discovery of nodes Автоматическое обнаружение из одного узла кластера других подключённых в настоящее время узлов. Есть 3 способа (описаны в докуметнации), например, по их адресу в сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 13:07 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Partisan M, Partisan MАвтоматическое обнаружение из одного узла кластера других подключённых в настоящее время узлов Тут речь про узлы нашего приложения или про узлы самого HazelCast? и зачем их вообще обнаруживать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 15:56 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Про узлы кластера. Кластер есть у Hazelcast-а, а не у приложения. Обычно узлы находятся на разных компьютерах. Автоматическое обнаружение позволяет из одного узла узнать, какие другие сейчас работают в кластере. Например, в настройках можно указать все возможные узлы кластера (хотя это необязательно). Но какие из них работают - надо узнавать в процессе работы. Какие-то могут быть отключены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 17:06 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Partisan M, А мне как клиенту этой хэш-мапы зачем знать как она там внутри устроена? зачем знать сколько там внутри узлов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 09:48 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Это нужно знать не клиенту, а Hazelcast-у. В его кластере работа распределяется между узлами. Значит, Hazelcast-у надо знать, какие узлы активны. В процессе работы узлы могут появляться или исчезать (потому что обычно они находятся на разных компьютерах в сети). Например, включили компьютер - Hazelcast-у надо знать, что его можно использовать в кластере. Функция автоматического обнаружения этим и занимается. Клиент обращается не к узлам, а к Hazelcast-у, поэтому ему знать не нужно (в чём можно убдиться, посмотрев программные примеры - там не указываются ни узлы, ни кластер). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2016, 11:33 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
mayton, Ну, там очень в скользь про Hazelcast, но доклад отличнейший. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 09:33 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Доклад плохой. Автор говорит на языке пиджин-инглиш (приходится переводить на русский) и не разбирается в темах, которые упоминает. Так, два мифа о 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 или ещё что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 11:23 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Partisan MДоклад плохой. Автор говорит на языке пиджин-инглиш (приходится переводить на русский) Практически все айтишнки Украины так говорят. Поначалу меня это коробило, но погуляв лет 5 по семинарам - привык и не замечаю. В принципе непонятных слова там нет, но возможно были ошибочные артикуляции или неверные склонения англоицизмов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 12:01 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
В общем, мысль была в том, что альтернативы JMS есть. Но не надо использовать программные средства не по назначению. В дополнение к Hazelcast: он сказал, что там есть бэкап сообщений с одного узла на другие узлы кластера. Надо иметь ввиду, что этим не обеспечивается долговременное хранение сообщений (его надо программировать дополнительно). Просто если один узел отключится во время работы, то его объекты уже окажутся сохранёнными на других узлах, и после отключения этого узла будут восстановлены в их кеш. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 12:29 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Мне изначально не понравилась идея передавать в месседже ID-шник который ссылается на какое-то третье хранилище. В этом есть какая-то натяжка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 13:54 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Partisan MДоклад плохой. Автор говорит на языке пиджин-инглиш (приходится переводить на русский) и не разбирается в темах, которые упоминает. А по-моему он в конце и проясняет этот момент для тех кто не понял. JMS, до недавнего времени, был единственным способом поиметь асинхронные процессы в JEE. Докладчик же предлагает смотреть на проблему шире и перечисляет все другие способы. Можешь пояснить про ZeroMQ? Из доклада сложно понять что оно вообще такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 18:25 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
maytonМне изначально не понравилась идея передавать в месседже ID-шник который ссылается на какое-то третье хранилище. В этом есть какая-то натяжка... Ну, а если у тебя толстные объекты, то как иначе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 18:25 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJMS, до недавнего времени, был единственным способом поиметь асинхронные процессы в JEE Был еще Quartz scheduler вроде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 18:37 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
BlazkowiczmaytonМне изначально не понравилась идея передавать в месседже ID-шник который ссылается на какое-то третье хранилище. В этом есть какая-то натяжка... Ну, а если у тебя толстные объекты, то как иначе? Не знаю. Я просто рассуждаю вслух. Насколько я понимаю сервис рассылки сообщений предполагает что сообщение рано или поздно должно быть доставлено. И если мы исходим из предположения что Subscriber (или Consumer) всё равно будет вычитывать по ID-шнику содержание то он будет делать обращение в хранилище. И если это обращение будет синхронным (а как иначе?) то теряется весь смысл. Мы должны собрать всё сообщение из его составных частей. И суммарный объём сетевого трафика в этой топологии будет еще больше чем в простом варианте (я так думаю. Не берусь доказывать пока). Если имелась в виду другая схема (со множество Subscriber-ов) или схема при которой мессежд содержит опциональные поля или поля которые будут по ID-шнику вычитываться не всегда (а скажем в 1-3% всех случаев) то это предложение имело-бы смысл. Вобщем всё что я щас сказал это ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 18:49 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Сообщение доставлено, но у подписчика есть собственный фильтр из-за которого "вот эта группа сообщений" вообще не будет читаться. Зачем доставлять то, что (возможно) никогда не будет востребовано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 16:49 |
|
||
|
Hazelcast как in-memory grid
|
|||
|---|---|---|---|
|
#18+
Partisan MВ дополнение к Hazelcast: он сказал, что там есть бэкап сообщений с одного узла на другие узлы кластера. Надо иметь ввиду, что этим не обеспечивается долговременное хранение сообщений (его надо программировать дополнительно). Долговоменненнное хранение реализуется средствами map-store например, и не представляет проблем. Так же в Hazelcast есть политики вытеснения и подсчёт статистики для определения что нужно хранить в памяти, а что помещать в долговременное хранилище. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2016, 02:09 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=94&tid=2123959]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 290ms |

| 0 / 0 |
