Использование Cassandra в Java EE (GlassFish) - PullRequest
3 голосов
/ 14 сентября 2011

В настоящее время я работаю над корпоративным приложением, которое развернуто на GlassFish.Я пытаюсь найти правильный способ связи с бэкэндом кассандры из EJB, который был развернут на GlassFish 3.1.Я бы предпочел использовать Пелопса, чтобы поговорить с Кассандрой.

Отказ от ответственности: я новичок в Java EE и в концепциях, лежащих в основе серверов корпоративных приложений и EJB;Одна из целей этого проекта - изучить эти темы.Это выходит за рамки этого вопроса, так как я просто хочу, чтобы меня указали в правильном направлении для лучших практик или куда я должен идти, чтобы найти лучшие практики;До сих пор Google не был очень полезным / последовательным в этой теме.

Точнее, стоит ли мне думать о написании JCA-соединителя для Кассандры?Используете одноэлементный EJB, который общается с Кассандрой через Пелопса?Просто использовать pelops прямо в моих EJB?(хотя я думал, что вы не должны создавать сокет-соединения в ejbs) Что-то еще полностью?

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

Спецификация EJB запрещает EJB открывать сокеты сервера, но не сокеты.Однако он также запрещает EJB создавать потоки.Создает ли Пелопс (или Гектор) потоки для обработки своего пула?

В стороне от буквы закона, поскольку обе эти библиотеки выполняют пул, они определенно чувствуют себя как нечто, принадлежащее мне на уровне адаптера ресурсов.Я бы нервничал по поводу EJB-компонентов, чей жизненный цикл контролируется контейнером, и, возможно, он довольно короткий, он привязан к ресурсу, такому как пул соединений, чей жизненный цикл несколько независим и должен быть более длинным.большинство реализаций EJB довольно просты, поэтому, независимо от того, является ли использование Pelops / Hector напрямую из EJBs архитектурно правильным или нет, очень вероятно, что оно будет работать.

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

1 голос
/ 18 октября 2011

мы разрабатываем аналогичное приложение, в котором я сейчас работаю, даже если мы не реализуем EJB, мы развернем бэкэнд для Glassfish 3.1, а внутри создали небольшую библиотеку, которая общается с Cassandra.

В настоящее время наиболее используемой библиотекой для подключения и работы с Cassandra является Гектор:

https://github.com/rantav/hector

Очень активно развивается. Я никогда не видел его внутри EJB, но я использовал его, и он очень прочный. Не то, как развивается Пелопс.

Мы разработали здесь очень нестандартное приложение, адаптированное к нашим потребностям, поэтому мы в первую очередь не использовали Hector.

Пока вы используете клиентские сокеты в EJB, вы должны быть в безопасности, ограничение на EJB относится к сокету сервера, который должен обрабатываться сервером приложений. Но если у вас есть другие потребности, вы должны написать свой JCA.

...