Neo4j 集群和负载均衡

news2025/1/13 15:47:47

Neo4j 集群和负载均衡

Neo4j是当前最流行的开源图DB。刚好读到了Neo4j的集群和负载均衡策略,记录一下。

1 集群

Neo4j 集群使用主从复制实现高可用性和水平读扩展。

1.1 复制

集群的写入都通过主节点协调完成的,数据先写入主机,再同步到一个或多个备机。这意味着并没有做图切分,集群中的每个实例都将包含数据的完整副本。准确来说,集群中的每个实例最终会将包含数据的完整副本,原因是,刚刚写入的数据,可能还没有同步到备机。

Neo4j 也允许通过从节点进行写入操作,不过此时,被写入的从节点会先将数据同步到主节点,再将数据返回客户端。由于额外的网络负载和协调协议,通过从节点写入会比直接写入主节点慢一个数量级。

1.2 写入缓冲区

在高写人负载的情况中,可以使用队列来进行缓冲区写入和负载调节。使用该策略将集群的写入缓冲在队列中,随后会有工作节点对队列进行轮询并对数据库执行批量写入。这不仅控制了写入流量,而且降低了竞争,并使我们能够在维护时段暂停写入操作而不拒绝客户端的请求。

2 负载均衡

2.1 读写分离流量

鉴于推荐的写入方式是将绝大部分写入操作直接在主节点上进行,我们应该将读请求和写请求完全分离开,并通过负载均衡器将写流量定向到主节点,而读流量平衡地分散到整个集群。

2.2 高速缓存分片

高速缓存分片技术是指将每个请求路由到 HA(高可用性)集群中的特定实例上,这个实例可能已经将需要使用的图的部分放置在自己的主存储器中了。

如果应用程序的大多数查询都是局部图查询,即从图的一个或多个特定点开始,然后遍历周围的子图,那么这种一致地从一组节点开始查询,随后路由到同一数据库实例继续查询的机制将增加每个查询在热高速缓存( warm cache )中命中可能性。 例如,在一个地理数据系统中,我们可以将特定地区的请求路由到特定的刚刚响应过该地区的数据库实例上。这种策略都增加了所需节点和联系被缓存在主存储器中的可能性,在那里它们可以被快速地访问和处理。

感兴趣的同学可以看一下一致性哈希

3 附

以上内容均参考自《图数据库》。

图数据库(第二版).pdf https://www.aliyundrive.com/s/zxfL2btKEj5

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

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

相关文章

word中将合并后的多行拆分为原先的行数

word中将已经合并的多行拆分为原先的行数,我们不用刻意去数应该是多少行, 只需将拆分的行数不断增加,word会默认最大增加到合并前的行数。

redis 第二章

目录 1.持久化 2.主从复制 3.总结 1.持久化 通过 aof 和 rdb 将内存里的数据放到磁盘中 aof: rdb: 2.主从复制 将一台 redis 服务器的数据,复制到其他的 redis 服务器 3.总结 主从复制是高可用 redis 的基础,哨兵和集群都是在主从复制基础上实现高可…

UE UMG补充

Widget Switcher(UI选择) 通过该组件可以在同一个地方显示不同UI 可以通过蓝图改变显示的UI 在UI界面直接设置 ProgressBar(进度条) 可以用动画实现增长,更加自然 Animation 有绑定功能

具身智能controller---RT-1(Robotics Transformer)(上---方法介绍)

具身智能controller---RT-1(Robotics Transformer)(上---方法介绍) 相关链接摘要和简介相关工作与预备知识系统概述模型 RT-1: ROBOTICS TRANSFORMER模型 相关链接 github链接 主页链接(包括论文和训练数据集&#xf…

fpga开发——蜂鸣器

蜂鸣器的原理 有源蜂鸣器和无源蜂鸣器 无源蜂鸣器利用电磁感应现象,为音圈接入交变电流后形成的电磁铁与永磁铁相吸或相斥而推动振膜发声,接入直流电只能持续推动振膜而无法产生声音,只能在接通或断开时产生声音。无源蜂鸣器的工作原理与扬声…

LeetCode152.Maximum-Product-Subarray<乘积最大的子数组>

题目: 思路: 一开始是使用的每次乘积的最大值. 遍历. 然后因为有负数所以还是差点.看了答案,发现还需要保存一个负数的值.当当前的值是负数的时候 互换位置.然后获得当前最大值. 代码是: //codeclass Solution { public:int maxProduct(vec…

哈希表与布隆过滤器

文章目录 一、哈希函数是什么?哈希函数的应用场景哈希函数的构造方法 二、哈希表哈希表的底层设计题型 三、布隆过滤器布隆过滤器优点布隆过滤器缺陷布隆过滤器使用场景 一致性哈希算法.位图 3. 海量数据面试题 一、哈希函数是什么? 1 : 哈希函数没有随…

二.安装helm

1.什么是helm Kubernetes 包管理器 Helm 是查找、分享和使用软件构件 Kubernetes 的最优方式。 Helm 管理名为 chart 的 Kubernetes 包的工具。Helm 可以做以下的事情: 从头开始创建新的 chart将 chart 打包成归档(tgz)文件与存储 chart 的仓库进行交互在现有的 K…

【数据结构】_4.List接口实现类LinkedList与链表

目录 1.链表的结构与特点 1.1 链表的结构: 1.2 链表的特点: 2. 不带头单链表的模拟实现 3. 单链表OJ 3.1 题目1:移除链表元素: 3.2 题目2:反转一个单链表 3.3 题目3:返回链表的中间结点 3.4 题目4&#xff1…

Python连接MariaDB数据库

Python连接MariaDB数据库 一、安装mariadb库 pip install mariadb 二、连接数据库 connect()函数连接数据库。 import mariadbconn mariadb.connect(user"root", password"Root123", host"192.168.0.182", port3306, database"compan…

Linux环境搭建(XShell+云服务器)

好久不见啊,放假也有一周左右了,简单休息了下(就是玩了几天~~),最近也是在学习Linux,现在正在初步的学习阶段,本篇将会简单的介绍一下Linux操作系统和介绍Linux环境的安装与配置,来帮…

【沁恒蓝牙mesh】组网方式选择与分析

本文主要介绍了【沁恒蓝牙mesh】组网方式选择与分析 1.开发环境搭建与程序烧录 参考博文:【经验】如何搭建沁恒蓝牙SoC CH58x开发环境 2. 组网方式 蓝牙mesh组网实践(配网方式的选择) 自配网:自己给自己配网,当节点…

Labview串口通信MSComm实现串口收发

文章目录 前言一、什么是 MSComm二、MSComm 控件下载三、MSComm 控件的注册四、使用 MSComm 控件1、前面板放置控件2、MSComm 的常用属性3、MSComm 控件的事件 五、实现串口收发1、搭建虚拟串口2、发送测试3、接收测试4、后面板核心程序框图 六、程序自取 前言 本文介绍使用 A…

study 第三方库

import osprint(os.listdir()) #列出当前目录下的文件 print(os.getcwd()) #获取绝对路径if not os.path.exists("b"):os.mkdir("b") if not os.path.exists("b/test.ext"):f open("b/text.txt","w")f.write("hello,f…

sql学习笔记

sql语句优先级 FROM → WHERE → GROUP BY → SELECT → HAVING → ORDER BY sql case用法 例题: 按照销售单价( sale_price )对练习 3.6 中的 product(商品)表中的商品进行如下分类。 低档商品:销售单价在1000日元以下&#x…

MATLAB | 产生阿尔法稳定分布噪声并作出概率密度函数

一、问题描述 想产生不同特征参数的α稳定随机变量,并且作出其概率密度函数进行对比。 二、解决思路 运行了MATLAB的官方实例代码: openExample(‘stats/ComparePDFsOfStableDistributionsExample’) (1)使用makedist()函数生成…

低代码未来的发展方向

大的未来都是AI ,AI , AI …,理论上不可能有别的。 拿iVX来说吧,已经做了一整套完整的 可视化编程范式,基本可以生成所有系统的前端后台和数据库代码。也就是说,其组件系统和逻辑表达(非代码&a…

整天用 Calendar 日历组件,不如自己手写一个吧!

目录 Date 的 api 实现日历组件 静态的布局 再来写逻辑 增加两个参数 提供 ref 来暴露 api 总结 日历组件想必大家都用过,在各个组件库里都有。比如 antd 的 Calendar 组件(或者 DatePicker 组件): 那这种日历组件是怎么实…

【论文阅读】A Comprehensive Survey

论文来源:Li M , Liu Y , Liu X ,et al.The Deep Learning Compiler: A Comprehensive Survey[J]. 2020.DOI:10.1109/TPDS.2020.3030548. 这是一篇关于深度学习编译器的综述类文章。 什么是深度学习编译器 深度学习(Deep Learning)编译器将…

STM32H5开发(4)----开发板介绍

STM32H5开发----4.开发板介绍 套件概述样品申请特征系统控制和生态系统访问功能示意图系统框图跳线设置开发板原理图 套件概述 STM32H503RBTx_LQFP64是STM32H5系列微控制器的一款出色评估套件,它采用了先进的40nm工艺制造,为开发者提供了卓越的性能和能…