bolt 比 http 有什么优势,为什么我们更喜欢 bolt,
What advantage bolt gives over http and Why should we prefer bolt,
我正在后端使用 neo4j 和 Spring Data Neo4j (SDN) 开发图形数据库。 SDN 允许我使用 HTTP 或 BOLT 连接到 neo4j,SDN 还提供了我只需要提到的所有配置,包括属性和依赖项
#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>
所以让我把我的问题分解成更小的问题
- 为什么我们应该使用 bolt 而不是 HTTP?
- 它与 HTTP 有何不同?
- 它比 HTTP 有什么优势或劣势?
- 我应该使用它还是只使用 HTTP 就可以?
Bolt 是一种二进制协议,比 HTTP 更紧凑,吞吐量更高。您可能考虑将 HTTP 与当前版本的 SDN 一起使用的唯一原因是,如果您使用 HAProxy 前端的 HA 设置。
否则,Bolt 应该是您的默认选择。
有关螺栓的更多信息:https://neo4j.com/blog/neo4j-3-0-language-drivers/
https://dzone.com/articles/introducing-bolt-neo4js-upcoming-binary-protocol-p
我正在后端使用 neo4j 和 Spring Data Neo4j (SDN) 开发图形数据库。 SDN 允许我使用 HTTP 或 BOLT 连接到 neo4j,SDN 还提供了我只需要提到的所有配置,包括属性和依赖项
#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>
所以让我把我的问题分解成更小的问题
- 为什么我们应该使用 bolt 而不是 HTTP?
- 它与 HTTP 有何不同?
- 它比 HTTP 有什么优势或劣势?
- 我应该使用它还是只使用 HTTP 就可以?
Bolt 是一种二进制协议,比 HTTP 更紧凑,吞吐量更高。您可能考虑将 HTTP 与当前版本的 SDN 一起使用的唯一原因是,如果您使用 HAProxy 前端的 HA 设置。 否则,Bolt 应该是您的默认选择。
有关螺栓的更多信息:https://neo4j.com/blog/neo4j-3-0-language-drivers/ https://dzone.com/articles/introducing-bolt-neo4js-upcoming-binary-protocol-p