`
weitao1026
  • 浏览: 1056024 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

一个Neo4J HA集群的协作运行,协调行为是通过zookeeper完成的。

当一个Neo4j HA实体开启时将去连接协调器服务(zookeeper)注册其本身并询问“谁是主机(master)?”。如果某个机器是主机,新的实体将以从机(slaver)开启并连接到主机(master)。如果机器开启时为第一个注册或者通过主机选择算法应该成为主机,将会作为主机开启。

       当从一个从机上执行一个写入的事务时,每个写入操作将与主机同步(主机与从机将被锁定)。当事务提交时首先存在于主机上。当主机事务提交成功,从机上的事务也会被提交。为确保一致性,在执行写入操作前从机与主机同步必须是最新的。这是建立主机与从机之间的通讯协议,所以如果需要,更新将会自动发生。

       可以通过在包含ha.slave_coordinator_update_mode=none配置参数的配置文件中将数据库实体设置成只做为从机。此实体虽然在系统故障恢复选择时将不可能再成为主机,然而此从机的行为与其他所有从机都一样,含有永久写入到主机的能力。

       当从主机上执行写入操作,它将与在普通的嵌入模式中执行一样。此时主机将不会推送更新消息到从机。相反,从机可以配置一个拉取消息的时间间隔。没有选举,更新操作仅仅只会发生在从机上,任何时候都将同步一个写入到主机。

       将所有写入操作通过从机执行的好处是数据将被复制到两台机器上。这是建议的,避免当新选主机时可能造成回滚失败。

       当某台neo4j数据库服务不可用时,协调器(coordinator)将探测到并从集群中删除掉。当主机当机时,新的主机将自动被选择出来。一般地,一个新的主机被选定并在几秒钟内启动,在这段时间将不会执行任何写入操作(写入将抛出异常)。当某台机器从故障中恢复了,将会被自动重新连接到集群中。当没有得到其他任何机器的备份的旧的主机改变时, 是唯一不确定的。如果新的主机被选择并在旧的主机恢复前执行改变,将会有两个不同版本的数据。旧主机将移除分支数据库并从新主机下载一个全版本的数据。

 

Ø  所有这些可以归纳如下:

Ø  从机可以处理写入事务。

Ø  更新相对从机最终将会一致。

Ø  Neo4j HA 是一个容错并能继续执行从x台机器到单独一台机器(基于zookeeper设置)。

Ø  在写入操作上从机将自动同步到主机。

Ø  当主机故障时新的主机将自动选出。

Ø  当任何导致运行中断的错误(网络、维护)解决时当台机器将会自动被重新连接到集群中。

Ø  事务的原子性、持久性和一致性并最终会广播到其他从机上。

Ø  主机故障了,所有正在运行写入事务将会被回滚,主机选举时任何写入操作都不能执行。

Ø  读取操作高度可用。

分享到:
评论

相关推荐

    neo4j-community-3.5.12.zip

    4. `lib` 目录:包含 Neo4j 运行所需的库文件。 5. `plugins` 目录:用于添加自定义插件或扩展 Neo4j 功能。 6. `import` 和 `export` 目录:分别用于导入和导出数据。 **知识点详解:** 1. **图数据库原理**:图...

    neo4j-community-3.5.5

    8. **库文件**:包含了运行Neo4j所需的各种依赖库。 使用Neo4j社区版,你可以: 1. **安装与启动**:按照官方文档或提供的脚本进行安装,并通过命令行工具启动数据库服务器。 2. **数据建模**:定义节点类型和关系...

    neo4j4.2实例视频

    你可以通过这些数据运行Cypher查询,观察结果,从而加深对Neo4j工作原理的理解。 总的来说,"Neo4j4.2实例视频"将引导你全面了解Neo4j的安装、使用和高级特性,帮助你成为一名熟练的图形数据库开发者。通过实际操作...

    neo4j-3.2.zip

    6. 集群和高可用性:Neo4j 3.2引入了高可用性集群模式,允许多个实例同时运行以提高服务的可用性和容错性。这个版本的源码会展示如何配置和管理这些集群。 7. 性能优化:源码中包含了各种性能优化技术,例如批处理...

    Neo4j_v1.2用户手册

    - **运行机制**:解释了 Neo4j HA 系统的工作原理。 ##### 6. 运维管理 - **备份**:提供了一套完整的数据备份方案。 - **安全**:探讨了 Neo4j 的安全性问题,包括权限控制、加密通信等。 - **监控**:介绍了一...

    Neo4j Java开发快速指南

    10. **持续集成与部署**: 将Neo4j集成到持续集成/持续部署(CI/CD)流程中,确保代码质量并在生产环境中顺畅运行。 以上内容只是Neo4j Java开发的一小部分,更深入的学习将涉及图形算法、分布式系统原理以及高级...

    spring-data-neo4j

    - **环境要求**:明确了运行Spring Data Neo4j所需的基本条件,如Java版本等。 - **资源获取**:提供了项目元数据、获取帮助和反馈的方法。 #### 五、新特性与改进 - **Spring Data Neo4j 5.0.0**:介绍该版本引入...

    Neo4j开源社区版安装问题解决以及官方实例运行指南

    确保系统已安装Java Development Kit(JDK),因为Neo4j依赖于JDK运行。初始密码设置可通过`neo4j-admin set-initial-password admin`命令完成,这里假设密码为"admin",请根据需要更改。如果遇到认证失败的警告,...

    Laravel开发-neo4j-php-ogm

    在你的Laravel项目的根目录下运行以下命令: ``` composer require neo4j/neo4j-ogm ``` 2. **配置文件**:接着,在`config/app.php`中注册Neo4j的服务提供者。添加以下代码到`providers`数组: ```php 'providers'...

    Python期末大作业——采用Neo4j的基于协同过滤电影推荐系统.zip

    总之,这个Python项目不仅涵盖了推荐系统的基本原理,还涉及了大数据处理和图数据库的实际应用,对于提升学生的软件开发能力和数据分析能力具有极大的帮助。通过深入研究和实践这个项目,学习者将能够掌握从数据处理...

    Spring-boot框架连结Neo4j搭建课程知识图谱,实现课程的KBQA问答系统以及相关课程信息的查询和D3.JS可视化

    它包含了自动配置、起步依赖、内嵌Web服务器等功能,使得开发人员能够快速构建可运行的项目。 2. **Neo4j图数据库**:Neo4j是一种高性能的图数据库,适合处理复杂的关联数据。在课程知识图谱的构建中, Neo4j可以...

    neo4j-3.5.zip

    在Ubuntu系统下运行Neo4j,你需要确保系统满足必要的依赖条件,如Java Development Kit (JDK) 8或更高版本。安装步骤通常包括解压zip文件,配置环境变量,然后启动服务。你可以通过修改`conf/neo4j.conf`文件来定制...

    neo4j-community-1.8.2 linux版本

    通过了解以上知识,您将能够有效地在Linux环境中安装、配置和使用Neo4j 1.8.2社区版,同时掌握图形数据库的基本原理和操作。在实际项目中,可以根据具体需求选择合适的版本和策略,发挥Neo4j的强大能力。

    Neo4j Operations Manual 3.0

    - **技术信息**:解释其工作原理。 - **禁用 UDC**:提供方法禁用数据收集。 ##### 2.6 升级 - **单实例升级**: - **支持的升级路径**:列出兼容版本。 - **升级指令**:逐步指导完成升级。 - **Neo4j 集群...

    Spring-Boot集成Neo4j并利用Spark的朴素贝叶斯分类器实现基于电影知识图谱的智能问答系统

    以下将详细阐述这个系统的组成部分及其工作原理。 首先,Spring-Boot是Java开发框架,它简化了创建独立、生产就绪的微服务应用程序的过程。集成Spring-Boot可以使我们的问答系统拥有良好的可扩展性和模块化设计,...

    Neo4j中文使用手册以及例子

    这些内容旨在确保Neo4j在实际环境中的稳定运行和高效管理。 **6. 工具集** 工具集部分介绍Web界面的图数据库管理工具和Neo4j的命令行工具,便于用户管理和维护数据库。 **7. 社区** 社区支持部分强调了社区对Neo4j...

    spring-data-neo4j-cross-store-3.0.1.RELEASE.zip

    开发者可以下载这个zip文件,将其解压后,通过构建工具(如Maven或Gradle)来编译和运行代码,了解其工作原理,并根据自己的需求进行定制。 综上所述,"spring-data-neo4j-cross-store-3.0.1.RELEASE.zip"和...

    neo4j企业版 5.1.0 linux版本

    1. **图形数据库原理**:Neo4j采用了节点、边和属性的模型来存储和查询数据,这种结构非常适合表示和查询具有关联关系的数据。节点代表实体,边表示实体之间的关系,属性则为这些实体和关系添加元数据。 2. **...

    基于neo4j肝病知识图谱的问答系统python源码+运行说明.zip

    下面我们将详细探讨该系统的构成、工作原理以及Python源码的解析。 一、系统概述 1.1 Neo4j知识图谱 Neo4j是一种图形数据库,特别适合存储和查询复杂的网络结构数据。在这个肝病问答系统中,Neo4j被用来构建和存储...

    movies-java-spring-data-neo4j-main.zip

    标题中的"movies-java-spring-data-neo4j-main.zip"表明这是一个关于使用Java Spring Data与Neo4j图形数据库交互的示例...如果你希望深入学习这个话题,建议先解压文件,然后阅读源代码,运行示例,理解其工作原理。

Global site tag (gtag.js) - Google Analytics