知识图谱-图数据库-neo4j (1)踩坑记录

1、neo4j 安装

材料 : openjdk11 (neo4j 最低jdk版本要求)

neo4j-community-4.4.30

CentOS 7.8

复制代码
Release Date: 25 January 2024
Neo4j 4.4.30 is a maintenance release with many important improvements and fixes.

Neo4j Deployment Center - Graph Database & Analytics

安装步骤:

复制代码
# 解压社区版本文件
tar -zxvf neo4j-community-4.4.30-unix.tar.gz
# 解压jdk11
tar -zxvf OpenJDK11U-jdk_x64_linux_hotspot_11.0.21_9.tar.gz
#设置neo4j环境变量
vi /etc/profile

export neo4j_home=/usr/local/neo4j
export PATH=$PATH:$neo4j_home/bin

source /etc/profile

# 移动文件
mv neo4j-community-4.4.30 /usr/local/neo4j


# 修改启动文件/usr/local/neo4j/bin/neo4j,替换java_home 路径
export JAVA11_HOME=/data/midware/jdk/jdk-11.0.21+9
$JAVA_HOME  -->  $JAVA11_HOME

# 修改配置文件
vi /usr/local/neo4j/conf/neo4j.conf

dbms.default_listen_address=0.0.0.0
# Bolt connector  java 客户端连接
dbms.connector.bolt.enabled=true
dbms.connector.bolt.tls_level=DISABLED
dbms.connector.bolt.listen_address=:7687
dbms.connector.bolt.advertised_address=:7687

# HTTP Connector. There can be zero or one HTTP connectors.
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=:7474
dbms.connector.http.advertised_address=:7474

启动

复制代码
neo4j --help
neo4j restart

访问地址:

数据库排名: Graph 数据库,Neo4j 排名靠前

DB-Engines Ranking - popularity ranking of graph DBMS

java 复制代码
 Neo4j(主流)
历史悠久且长期处于图数据库领域的主力地位,其功能强大,性能也不错,单节点的服务器可承载上亿级的节点和关系。社区版最多支持 320 亿个节点、320 亿个关系和 640 亿个属性。
优点:Neo4j有自己的后端存储,不必如同JanusGraph等一样还要依赖另外的数据库存储。 Neo4j在每个节点中存储了每个边的指针,因而遍历时效率相当高。
缺点:企业版付费。开源的社区版本只支持单机,不支持分布式。社区版只能部署成单实例,企业版可以部署成高可用集群,从而可以解决高并发量的问题;不能做集群,单个实例故障时影响系统正常运行。社区版只支持冷备份,即需要停止服务后才能进行备份

2、springboot 集成

版本

XML 复制代码
<spring-boot.version>2.7.13</spring-boot.version>
<spring-cloud.version>2021.0.8</spring-cloud.version>

starter

java 复制代码
        <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、启动类注解

java 复制代码
@SpringBootApplication
@Slf4j
@EnableNeo4jRepositories(basePackages = {"com.xxx.**.repository"})
@EnableTransactionManagement // 激活隐式事务
public class KnowledgeApplication {

    public static void main(String[] args) {
        SpringApplication.run(KnowledgeApplication.class, args);
    }

}

4、遇到的告警问题

java 复制代码
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的健康检查)

java 复制代码
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

Open JDK下载_openjdk下载-CSDN博客

相关推荐
muqsen几秒前
Java 分布式相关面试题总结
java·开发语言·分布式
做个文艺程序员2 分钟前
第02篇:搭建 ES 集群 + Spring Boot 整合实战——从 Docker Compose 到 Java 客户端全覆盖
java·spring boot·elasticsearch
Jinkxs3 分钟前
LoadBalancer- 简单限流策略:Nginx 基于连接 / 请求的限流实现
java·运维·nginx
fenglllle11 分钟前
JDK8升级JDK17使用CompletableFuture在线程中classloader的变化
java·开发语言·jvm
计算机安禾11 分钟前
【c++面向对象编程】第44篇:typename与class的区别,依赖类型名与template消除歧义
java·jvm·c++
JAVA面经实录91720 分钟前
Java+SpringAI企业级实战项目完整官方文档(生产终版)
java·开发语言·spring·ai编程
梵得儿SHI20 分钟前
Java IO 流进阶:Buffer 与 Channel 核心概念解析及与传统 IO 的本质区别
java·开发语言·高并发·nio·channel·buffer·提升io效率
斯特凡今天也很帅23 分钟前
Spring Boot+mybatis项目切换sql为传参成无参
spring boot·sql·mybatis
2301_7890156225 分钟前
C++_string增删查改模拟实现
java·开发语言·c++
没有逆称26 分钟前
Java OOM 问题全解析
java·jvm