Dado que el servidor independiente se basa en el servidor incorporado, la regla general es que el servidor incrustado es más capaz y tiene (obviamente) menor latencia. Cualquiera de los dos puede operar en modo de alta disponibilidad, permitir la monitorización e incluso aceptar conexiones del neo4j-shell. Sin embargo, con el servidor, obtienes más funciones listas para usar, como la comunicación remota, la visualización básica, la interfaz de monitorización, etc.
Las diferencias son las más prácticas que puedas imaginar. La elección de un enfoque de implementación está influenciada por dos cosas:
- El modo de lenguaje integrado requiere que implemente su aplicación con un lenguaje compatible con JVM. El servidor admite cualquier idioma/marco que pueda enviar solicitudes HTTP.
- Hardware: compartir recursos físicos entre su aplicación y Neo4j puede ser muy exigente. Escalar puede argumentar a favor de una máquina dedicada para dividir la capa de persistencia. El servidor obviamente tiene una API remota para admitir la segmentación de su aplicación.
De lo contrario, es difícil dar una guía sin un escenario de uso específico. Despliegue en una arquitectura orientada a servicios existente? Probablemente servidor. ¿Funcionando en una máquina copiadora? Ve incrustado. Desde cero aplicación web? ¿Cuál es el resto de tu pila?
proyecto es un sitio web donde quiero utilizar la base de datos noe4j. Creo que usar una integrada es una forma correcta, ya que me permite una fácil implementación con menos preocupaciones sobre curl y otras cosas. – codecool
Al usar Neo4j HA, ¿el API REST es la única forma de conectar mi aplicación (en una máquina separada) al clúster Neo4j? – arutaku
Sí, toda la comunicación remota con Neo4j se realiza a través de la API REST. – akollegger