1、neo4j 安装
由于目前还是用的 jdk8;所以需要安装jdk8支持的neo4j
乌班图系统
# 安装指定社区版本
sudo apt-get install neo4j #不指定,安装最新版本
sudo apt-get install neo4j=1:3.5.35 # 指定版本 jdk1.8的原因
# 企业版本
sudo apt-get install neo4j-enterprise=1:4.4.20
# 查看安装版本
neo4j --version
neo4j 3.5.35
数据库排名
Neo4j(主流)
历史悠久且长期处于图数据库领域的主力地位,其功能强大,性能也不错,单节点的服务器可承载上亿级的节点和关系。社区版最多支持 320 亿个节点、320 亿个关系和 640 亿个属性。
优点:Neo4j有自己的后端存储,不必如同JanusGraph等一样还要依赖另外的数据库存储。 Neo4j在每个节点中存储了每个边的指针,因而遍历时效率相当高。
缺点:企业版付费。开源的社区版本只支持单机,不支持分布式。社区版只能部署成单实例,企业版可以部署成高可用集群,从而可以解决高并发量的问题;不能做集群,单个实例故障时影响系统正常运行。社区版只支持冷备份,即需要停止服务后才能进行备份
2、springboot 集成
版本
<spring-boot.version>2.7.13</spring-boot.version>
<spring-cloud.version>2021.0.8</spring-cloud.version>
starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>
3、启动类注解
@SpringBootApplication
@Slf4j
@EnableNeo4jRepositories(basePackages = {"com.xxx.**.repository"})
@EnableTransactionManagement // 激活隐式事务
public class KnowledgeApplication {
public static void main(String[] args) {
SpringApplication.run(KnowledgeApplication.class, args);
}
}
4、遇到的告警问题
Neo4jReactiveHealthIndicator
Driver is connected to the database that does not support driver reactive API. In order to use the driver reactive API, please upgrade to neo4j 4.0.0 or later.
原因分析:
健康检查使用了Neo4jReactiveHealthIndicator;但是驱动不支持这个健康检查
解决方式:(强制使用neo4j 非Reactive的健康检查)
import org.neo4j.driver.Driver;
import org.springframework.boot.actuate.neo4j.Neo4jHealthIndicator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class Neo4jConfig {
@Bean
public Neo4jHealthIndicator neo4jHealthContributor(Driver driver) {
return new Neo4jHealthIndicator(driver);
}
}
相关
Neo4j 使用手册_neo4j中文手册-CSDN博客
neo4j 官网文档
Neo4j documentation - Neo4j Documentation