Neo4j 5的自治图数据库集群

news2025/8/9 2:01:30

原文作者:John Stegeman ,图数据库产品专家,Neo4j。基于原文翻译并补充整理而成。

新近发布的Neo4j 版本5推出了自治集群(Autonomous Cluster),以支持易于部署、可扩展、自容错等重要特性。下面我们就来一睹自治集群的特性。


什么是自治集群?

Neo4j 图数据库版本 5(“Neo4j 5”)引入了自治集群,与之前版本相比,运行和管理容错且高可用的 Neo4j 集群变得更加容易。Neo4j 5 中的新功能可以根据业务需求和服务约束自动决定如何在服务器(裸机、虚拟机或容器)之间分配“(primary,可写、同步)”和“从/辅助(secondary,只读、异步)”数据库实例或副本,这些服务约束是数据库管理员在定义集群拓扑时提供的。

在 Neo4j 5 中,服务器端路由 (Server Side Routing) 默认为开启。这使得使用标准网络负载均衡器和其他网络抽象云技术成为可能——Neo4j SSR 将透明地负责将查询路由到适当的 DBMS 服务器。自治集群自动负责跨集群配置数据库,从而更容易运行高可用性、高可扩展性的集群。

例如,想一想当集群中的一台机器出现故障时会发生什么?在自治集群中,无需手动将数据库实例重新分配给仍在正常运行的 DBMS 服务器,集群会自动集群中“领导(Leader)实例” 中选择一个新的领导以代替故障的 DBMS 服务器。这一新功能减少了在设置和维护集群时需要进行的手动配置,从而可以更轻松地运行高可用和可扩展的集群。

来看一个包含三个应用的简单示例,每个应用都有自己的 HA 和可伸缩性要求,数据库托管在由 5 个 DBMS 服务器组成的集群中。下图显示了 Neo4j 自治集群如何在集群中的 DBMS 服务器之间自动分配数据库: 

随着应用数量和用户数量的增长,自治集群能够极大减少与管理数据库和 DBMS 服务器相关的运维工作,因此对用户而言会越来越有价值。

自治集群是如何工作的:案例分析

下面让我们来深入看看自治集群是如何工作的。我们将设置一个三节点集群,检查它是如何工作的,创建一个新数据库,最后看看服务器端路由如何使我们能够连接到集群中的任何 DBMS 服务器并使用新数据库。如果您想阅读所有详细信息,可以按照文档进行操作。

对于下面的演示,我们将在同一个虚拟机上运行集群的所有三个 DBMS 服务器;当我们这样做时,我们需要确保每个 DBMS 服务器使用不同的端口以避免冲突。每个服务器都有一个名称和一个用于侦听连接的bolt协议端口——这些端口在每个服务器的 neo4j.conf 文件中配置。我们将分别为第一台、第二台和第三台服务器使用端口 7681、7682 和 7863。

 

服务器端路由在 Neo4j 5 中是默认启用的,不过还需要添加下面的行

dbms.routing.default_router=SERVER

到neo4j.conf 配置文件中指定 SSR 作为默认值。如果使用客户端路由,你可以将它设置为 CLIENT。启动三个 DBMS 服务器后,我们运行cypher-shell数据库命令行工具连接到其中任何一个,例如 server1 然后执行show servers命令以查看集群的状态:

默认情况下,每个 DBMS 服务器都使用内部生成的 UUID 命名。我们可以使用rename server命令给DBMS一个更友好的名字,例如server1 / server2 / server3:

在集群 DBMS 服务器上自主创建数据库

现在,让我们看看怎样创建满足约束条件的新数据库,并让 Neo4j 自治集群自动确定运行数据库的 DBMS 服务器。这一步骤是相当容易的。我们可以简单地使用create database命令并指定 一个“部署架构拓补”(topology),Neo4j 将自动决定使用哪个 DBMS 服务器。

在这个示例中,我们制定包含一个主数据库(可写)和一个从数据库(只读)的部署架构。这种配置显然不支持高可用性,因为我们至少需要三个主节点才能够满足因果集群的要求。我们只是以此简单的例子来了解 Neo4j 5 自治集群的工作原理。创建数据库的完整命令是:

create database supplychain topology 1 primary 1 secondary;

执行结果如下:

从执行结果可以看到,自治集群决定在 server1 上运行主节点,在 server3 上运行从节点。我们可以通过连接到 server2(端口7682) 并测试对新数据库的读取和写入。因为开启了显示服务器端路由,即使server2上没有新创建的supplychain数据库,读写请求也会被路由到server1和server3上执行。下面是执行的输出:

随着数据库的使用发生变化,例如扩大或缩小,我们随时使用 CYPHER 命令来改变我们新数据库的拓扑结构。这里我们来增加一个从数据库:

alter database supplychain set topology 1 primary 2 secondaries;

随着集群不断扩展、更多数据库被添加进来时,自治集群的优势会越来越显现。当向集群中添加了另外 6 个 DBMS 服务器(达到总共有 9 个服务器),以及 6 个具有各种拓扑结构的数据库时,自治集群自动处理了所有配置工作:

查看一下数据库,我们会看到主实例和从实例是如何自动分布在可用服务器上的。命令如下:

show database yield name,address,role,writer limit 20;

当我们需要关闭某个数据库服务器时,操作同样很简单。第一步,先将该服务器上的数据库迁移,CYPHER命令如下:

deallocate database from server "server9";

查看一下结果:

接着停止数据库服务器:

以及要求集群重新分配原先运行在该服务器上的数据库:

结果原先运行在server9上的数据库主动迁移到server5和server7上了。

服务器属性和标签

我们还可以使用服务器属性为自治集群提供更多信息。设置参数modeConstraint可以为PRIMARYSECONDARY,以确保该 DBMS 服务器仅托管数据库的主要或从实例,或者设置为 NONE(默认值)以允许托管任何实例类型。我们还可以设置参数allowedDatabasesdeniedDatabases属性来进一步配置集群。

在 Neo4j 5 的未来版本中还将引入标签,它可用于为 DBMS 服务器标记地理、容量等重要描述信息。在创建数据库时,这些特征对部署数据库会很有用,例如,“在欧洲地区的大型服务器上创建两个主服务器,在亚太地区创建三个辅助服务器等等。

总结

作为企业版的独有特性,Neo4j 5 中的自治集群使得构建高度可靠的大规模集群变得非常容易,这些集群可以处理大量并发工作负载,方便地水平扩展以满足企业级应用程序的需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/34193.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

隐私计算推动金融转型

肖峰 开放隐私计算 开放隐私计算 开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区”。 178篇原创…

Outside ExpertPDF HtmlToPdf 转换器 17.0

Outside Software Inc. 是一家罗马尼亚软件公司,旨在提供可靠、高质量的 IT 服务。该团队的成员在开发完整的 Web 应用程序、完全可伸缩的数据库解决方案、复杂的基于 Windows 的应用程序、出色的开发人员组件和工具方面拥有多年的经验。ExpertPDF HtmlToPdf 转换器…

【现代机器人学】学习笔记一:位形空间

由于工作的关系,一年前开始接触机械臂。与此同时也在学习【现代机器人学】与【机器人学导论】两本书,感觉【现代机器人学】写的更好一些。大致走马观花的看了一遍,确实有所收获。因此想再从头过一遍,做一些总结,写给自…

python下载安装教程

1、下载python 下载地址:https://www.python.org/,点击Downloads,选择对应电脑系统,进行下载。 (文末送读者福利) 2、安装python,以python3.10.7安装为例。 (1)双击安装包&#x…

数据获取 | 如何获取各地高质量的航拍图并生成等高线地形?

“ 做规划的基础资料少不了航拍图和地形图,但是实际操作中从甲方手上并不能拿到比较新的航拍图,至于地形图就只能看缘分了,那么,是否还有其他渠道可以获取到呢?” 先说结论,现在(2018年6月&…

43、集合的第一大类:Set

一、基本介绍: 1、Set接口的特点: 1)无序(添加和取出的顺序不一致) ,没有索引 2)不允许重复元素,所以最多包含一个null 3) JDK API中Set接口的实现类有:…

闪电连接算法之Python实现

文章目录简介原理Python实现简介 LAPO,即闪电连接优化(Lightning Attachment Procedure Optimization),听名字就知道是受到了闪电的刺激,而获得灵感的一种算法。 为了走进LAPO的内心,于是上网搜了一下闪电的图片 呃不好意思&…

网页设计期末作业,基于HTML+CSS+JavaScript超酷超炫的汽车类企业网站(6页)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

商用短链平台_第8章_ 账号微服务注册模块+短信验证码+阿里云OSS开发实战

商用短链平台_第8章_ 账号微服务注册模块短信验证码阿里云OSS开发实战 文章目录商用短链平台_第8章_ 账号微服务注册模块短信验证码阿里云OSS开发实战第八章 账号微服务注册模块短信验证码阿里云OSS开发实战第1集 账号微服务注册功能和流程介绍第2集 第三方短信验证码平台接入申…

1802907-97-6|Alkyne PEG5 甲基四嗪|炔基点击试剂

【中文名称】甲基四嗪-五聚乙二醇-炔,甲氨基-五聚乙二醇-炔基 【英文名称】 Methyltetrazine-PEG5-alkyne,Alkyne PEG5 Methyltetrazine 【结 构 式】 【CAS号】1802907-97-6 【分子式】C20H26N4O5 【分子量】402.45 【基团】炔基基团 【纯度】95% 【规…

数据分析案例-大数据相关招聘岗位可视化分析

数据集介绍 本次数据集来源于xx招聘网共计4223条招聘信息,每条招聘信息字段包括岗位名称、公司名称、工作经验要求、学历要求、工作地点、薪酬、公司规模、发布时间、公司福利共9条字段信息。 数据预处理 首先导入本次数据集, import pandas as pd da…

使用Cent Browser+Aria2+Bilibili Envolved下载b站视频--保姆级安装步骤

1 使用前准备 Cent Browser百分浏览器下载:https://www.centbrowser.cn/加强版谷歌浏览器,chrome内核。 Tempermonkey:https://chrome.zzzmh.cn/info/dhdgffkkebhmkfjojejmpbldmpobfkfo Aria2:https://github.com/aria2/aria2/re…

外汇天眼:多位支持加息放缓!美元走弱黄金上涨

黄金小时图 黄金方面: 周三(11月23日)晚间,黄金短线下挫至1728美元之后快速收回。 美联储11月的会议纪要显示,尽管通胀前景风险上行,但大多数的与会者认为尽早放缓加息是合适的,利率正在接近足…

哪些岗位需要考CDMP/CDGA/CDGP证书?

大数据时代,数据成为社会和组织的宝贵资产,像工业时代的石油和电力一样驱动万物。假如数据的真实性、可用性大打折扣,那么数据的价值将会大大折扣,甚至根本不可用,不敢用。因此,数据治理是大数据时代我们用…

把报文再扔回内核,DPDK这样做

在DPDK中经常看到一个词,exception path,它是什么? 在DPDK使用环境中,物理网卡收到的报文不再进入内核协议栈,而是直接到达DPDK应用。但是在有些场景中,用户希望把报文(如控制报文)…

iTOP3A5000_7A2000开发板龙芯全国产处理器LoongArch架构核心主板

主要参数 处理器: 龙芯3A5000 主频: 2.3GHz-2.5GHz 桥片: 7A2000 内存: 8GB、16GB DDR4带ECC纠错(配置可选) 系统: Loongnix 典型功耗: 35W 核心板: 16层 底板: 4层 核心板参数 尺寸: 125*95mm CPU: 龙芯四核3A5000处理器 主频: 2.3GHz-2.5GHz 桥片…

101个CV模型集体开源,魔搭社区视觉AI深度解析

作者:谢宣松 达摩院开放视觉智能团队 11月3日,在2022云栖大会上,阿里达摩院联手 CCF 开源发展委员会共同推出了 AI 模型社区“魔搭”ModelScope,旨在降低 AI 的应用门槛。 AI 模型较为复杂,尤其是要应用于行业场景&…

前后端分离项目,vue+uni-app+php+mysql在线考试系统设计与实现(H5移动项目)

功能介绍 用户首次登陆系统需要注册一个用户或直接使用微信作为账号,用户在登录平台后,可以进行平台的操作。主要模块包括以下几点: 注册登录功能:注册普通账号登录;也可以直接使用微信登录;登录后可以修改…

python学习——numpy库的使用[超详细的学习笔记]

目录 前言 1 导入及查看版本信息 2 数组的创建 2.1 基础数据类型转换为数组 2.2 数组内置方法 2.2.1 np.arange() 线性序列数组 2.2.2 np.linspace() 等差数组 2.2.3 np.logspace() 等比数组 2.2.4 np.zeros() 全零的数组 2.2.5 np.ons() 全一的数组 float型 2.2.6 np.zeros_…

浅谈数商云供应链协同系统物流管理功能在医疗器械行业的作用

近年来,我国医疗器械行业发展快速,但医疗器械物流作为医疗器械供应链中承上启下的重要环节,目前仍处于相对传统和粗放的发展阶段。随着国家经济的发展及人民对医疗健康需求的不断增加,医疗器械供应链与物流的升级已是大势所趋。 …