Тип подключения JPA при использовании Кундеры с Кассандрой?

Использует ли Java TCP соединение для JPA запросов к базе данных? Например, если для сервера базы данных IP address установлено значение x.x.x.x:xxxx, какой тип прокси-сервера может обрабатывать это соединение? HTTP или TCP прокси?


person Xitrum    schedule 31.10.2012    source источник
comment
Что вы имеете в виду под proxy? Вы имеете в виду Network Proxy Server?   -  person CAMOBAP    schedule 31.10.2012
comment
да, например, в моем приложении мне нужно только определить IP-адрес этого прокси, тогда соединение будет передано на соответствующие серверы базы данных   -  person Xitrum    schedule 31.10.2012


Ответы (3)


Драйвер JDBC не обязательно использует сетевое подключение. Hypersonic (HSQL), например, обеспечивает различные режимы работы.

Если он настроен как сервер, он будет принимать TCP-соединения, и к нему можно будет получить доступ с помощью JDBC-URL, например:

jdbc:hsqldb:hsql://machine/dbname

Во встроенном режиме TCP-соединение не требуется, URL-адрес не будет иметь имени сервера (или IP-адреса), URL-адрес будет выглядеть так:

jdbc:hsqldb:mem:dbname

Если вы используете сервер базы данных, вам необходимо настроить URL-адрес JDBC с именем машины (номер порта, если вы не используете значение по умолчанию). Прокси не нужен, драйвер сам установит соединение. Кстати. HTTP не имеет ничего общего с JDBC.

person stacker    schedule 31.10.2012
comment
спасибо, но я использую Cassandra, базу данных noSQL, поэтому для подключения к моему приложению я использовал kundera, который построен поверх JPA, для подключения к моей базе данных мой xml выглядит так ‹propertyname=kundera.nodes value= 127.0.0.1 /› ‹property name=kundera.port value=9160 /› и нет возможности изменить значение ip, поэтому я думаю, что если бы у меня был прокси-сервер для обработки этого соединения, было бы лучше. - person Xitrum; 31.10.2012
comment
@Aptos Кажется, вы должны следовать этому руководству github.com/ impetus-opensource/Kundera/wiki/ Если у вас все установлено на одном компьютере, localhost (127.0.0.1) должен быть в порядке. - person stacker; 31.10.2012
comment
=)) У меня есть до 4 серверов БД, 127.0.0.[1,2,3,4], и kundera не поддерживает динамическое создание постоянного блока, поэтому использование прокси-сервера для меня сейчас единственный вариант.. - person Xitrum; 31.10.2012
comment
@Aptos Вы можете поиграть с таким кодом, как java2s.com/Code/Java /Network-Protocol/Asimpleproxyserver.htm Но я сомневаюсь, что это решит вашу проблему. Возможно, потребуется немного больше исследований, чтобы заставить его работать. - person stacker; 31.10.2012

См. страницы Oracle на JPA и < href="http://docs.oracle.com/javaee/6/tutorial/doc/bnbpy.html" rel="nofollow">учебник по Java EE 6.

Способ подключения к базе данных зависит от базы данных и используемого драйвера JDBC. Некоторые базы данных, такие как SQLite, не используют никакое сетевое подключение.

person Community    schedule 31.10.2012
comment
хм, я подключаюсь к базе данных Cassandra через метод Кундеры, поэтому здесь нет драйвера JDBC... - person Xitrum; 31.10.2012

люди путаются в этом вопросе, потому что JPA != nosql и на самом деле совершенно несовместимы. Кое-что то же самое, но JPA действительно создан для РСУБД.

Все java-клиенты под ORM используют hector, astyanax и т. д. и т. д., которые используют бережливость, основанную на tcp. Таким образом, вы можете проксировать tcp, если хотите, и вы можете создать свою собственную библиотеку бережливости, как это делают astyanax и hector, и создать любой тип прокси, который вам нужен.

Дин

Разработчик PlayOrm

person Dean Hiller    schedule 01.11.2012