2017-05-28 123 views
1

我正在開發圖形數據庫在後端使用neo4j和Spring Data Neo4j(SDN)。和SDN允許我連接使用到的Neo4j HTTP或螺栓和SDN還提供所有的配置我只需要提到的包括性和依賴性螺栓給了什麼優勢超過HTTP,爲什麼我們應該更喜歡螺栓,

#Replace http with bolt  
spring: 
    data: 
     neo4j: 
      uri: http://localhost:7474 
      username: neo4j 
      password: nopassword 

然而,在使用HTTP我不需要包括任何在剛剛spring-boot-starter-data-neo4j其他依賴正常工作

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-data-neo4j</artifactId> 
</dependency> 

但使用BOLT我需要包括一個額外的依賴

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-neo4j</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.neo4j</groupId> 
       <artifactId>neo4j-ogm-http-driver</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-neo4j</artifactId> 
     <version>4.2.2.BUILD-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>org.neo4j</groupId> 
     <artifactId>neo4j-ogm-bolt-driver</artifactId> 
     <version>2.1.2</version> 
    </dependency> 

所以升等我打破我的問題在更小的問題

  1. 爲什麼我們應該使用螺栓而不是HTTP?
  2. 它與HTTP有何不同?
  3. 它對HTTP有什麼優點或缺點?
  4. 我應該去用它還是隻是HTTP很好?

回答

2

螺栓是一種二進制協議,更緊湊,吞吐量高於HTTP。您可能考慮在當前版本的SDN中使用HTTP的唯一原因是您使用HAProxy前置的HA設置。 否則,螺栓應該是你的默認選擇。

更多關於螺栓:https://neo4j.com/blog/neo4j-3-0-language-drivers/ https://dzone.com/articles/introducing-bolt-neo4js-upcoming-binary-protocol-p

+0

嗨@Luanne,謝謝你的回答很滿意,你所提到的博客談話也不錯,但我有具有與該螺栓一些性能問題的一些人,我有用鏈接更新了這個問題。你對這些有什麼看法? –

+1

我會說:1)爲什麼你在問這個問題之前沒有做過這方面的研究?2)這些顯然是反對使用BOLT的原因,3)現在你需要權衡這個問題。 –

+1

@NareshJoshi stackoverflow不適合辯論。主要問題是回答,請接受它,如果令人滿意的話 - 歡迎長時間討論neo4j-slack-users https://neo4j-users-slack-invite.herokuapp.com/ – Luanne