2015-03-01 2 views
2

Я работаю над webapp, работающим на Tomcat, который использует пружинные данные для подключения к графику neo4j во встроенном режиме. Я хотел бы использовать сервер neo4j вместо встроенного режима, и я ищу некоторую помощь, чтобы быть уверенным, как это сделать. Некоторые из моих приложений очень сложны и объединяются в одной транзакции результат нескольких запросов cypher в dto, отправленных пользователю.Использовать сервер neo4j вместо встроенного режима

Сначала я подумал, что мне нужно создать неуправляемое расширение сервера, и я думаю, что я должен выполнить следующие шаги. - Храните мой webapp с функцией springMVC и весной для хранения и защиты сеансов пользователей. - Перегруппируйте все мои транзакционные услуги в определенном банке my-app.jar - Используйте Jax-RS, чтобы добавить точку доступа REST в каждую мою службу my-app.jar - используйте что-нибудь наподобие пружинного упора. для вызова услуг из my-app.jar

Первый вопрос: этот способ делать вещи - это хороший способ? Второй вопрос: у меня есть много весенних инъекций в моем сервисе. Как я могу держать их работать (как я могу добавить зависимости в расширении сервера?

Тогда я обнаружил graphAware и мне интересно, если я должен использовать его вместо.

И, наконец, я только что прочитал этот пост http://jexp.de/blog/2014/12/spring-data-neo4j-improving-remoting-performance/ и кажется, что я должен использовать SpringCypherRestGraphDatabase (как поясняется жирным шрифтом в конце статьи).

Ну, я немного потерян, и я был бы признателен за любую помощь в использовании сервера neo4j вместо встроенного режима для моя заявка, содержащая некоторые сложные транзакции.

ответ

0

Я предлагаю вам немного подождать, пока SDN4 Milestone 1 не появится (разработан GraphAware), это было написано с нуля для Neo4j-Server.

+0

Есть ли у вас понятие о дорожной карте этой версии? Когда я могу использовать его, пожалуйста? – clement

3

У вас есть несколько вариантов здесь, и вы находитесь на правильном пути с мышлением.

Вариант 1:

Если прецеденты являются бизнес-логики-тяжелой, и ваш вопрос говорит о том, что они, идя неуправляемый маршрут расширения является одним из вариантов.

По существу, вы можете объединить наиболее эффективные Java API и Cypher (если хотите) для выполнения вашего прецедента. Я бы, кстати, не использовал SDN, так что вам нужно сделать свое сопоставление вручную, но действительно ли есть какое-либо сопоставление? Возможно, вы просто хотите выполнить запросы обхода/Cypher для каждого из ваших вариантов использования.

В каждом случае используется простой REST API, который используется вашим приложением Spring с питанием Spring MVC, Spring Security и все такое. Вы можете использовать RestTemplate из Spring в контроллерах вашего приложения.

Чтобы добавить завихрение ко всему этому, вы можете использовать GraphAware Framework для разработки «неуправляемого расширения» с использованием Spring MVC. Это был бы мой предпочтительный вариант, ничего не зная о вашем домене/приложении.

Вариант 2:

Использование новой версии SDN (v4), как говорит Майкл. Это позволяет запускать приложение с аннотированными объектами домена, Spring MVC, Security и т. Д.Операции (CRUD и др.) Автоматически переводятся на Cypher и отправляются через провод к Neo4j, работающему в режиме сервера (не требуется никаких расширений). Результаты затем перенаправляются обратно на объекты Java.

Мы собираемся выпустить Milestone 1 SDN v4. Это не займет больше недели. Тем не менее, он по-прежнему будет выпуском Milestone, поэтому он не готов к производству. Выпуск GA ожидается в мае (ish).

Вы уже можете попробовать SDN v4 самостоятельно. Клонировать это репо: https://github.com/spring-projects/spring-data-neo4j, убедитесь, что вы находитесь на ветке 4.0 и делаете на нем mvn clean install. Here's a sample app, построенный с использованием углового JS и весеннего ботинка.

Пожалуйста, свяжитесь с нами по вопросам обратной связи/вопросов/проблем (лучше всего по электронной почте на сайте graphaware dot com). Ура!

+0

Большое спасибо. Я собираюсь немного подождать, пока не увижу, что я могу с этим сделать. – clement

Смежные вопросы