Neo4j 集群和负载均衡

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Uniapp】支付链转二维码

前言 提示:这个是一个很小的项目,大概30分钟就能搞定 实现方式:输入支付代码,存储到对应的数据库表中,二维码访问一个PHP文件通过id来进行重定向,这样就可以使每张二维码都是固定的,替换二维码…

blender 用蒙版添加材质

一、添加材质常规方法 选择物体新建材质,shift a 新建图像纹理,此时会发现添加上的纹理会有接缝,shift a 新建映射 纹理坐标,纹理坐标选择生成,此时,之前的接缝便会消失; 如何快捷添加纹理坐…

13个ChatGPT类实用AI工具汇总

在ChatGPT爆火后,各种工具如同雨后春笋一般层出不穷。以下汇总了13种ChatGPT类实用工具,可以帮助学习、教学和科研。 01 / ChatGPT for google/ 一个浏览器插件,可搭配现有的搜索引擎来使用 最大化搜索效率,对搜索体验的提升相…

Tomcat 安装配置教程及成功后,启动失败报错解决方案

解决方案 我的报错原因是因为我的JDK是1.8的而我的Tomcat是10版本的,可能是因为版本原因吧,我重新装了Tomcat 9就可以启动成功了! 简单说下安装的时候需要注意哪些步骤吧 今天我在安装tomcat10的时候,安装成功后,启…

自定义类型讲解

💕痛苦难道是白忍受的吗?💕 作者:Mylvzi 文章主要内容:自定义类型讲解 一.结构体 定义: 数组:多组相同类型元素的集合 结构体:多组不同类型元素的集合-->管理多组不同类型数据…

Rust vs Go:常用语法对比(十三)

题图来自 Go vs. Rust: The Ultimate Performance Battle 241. Yield priority to other threads Explicitly decrease the priority of the current process, so that other execution threads have a better chance to execute now. Then resume normal execution and call f…

kettle 学习笔记

kettle 学习笔记 个人理解下载 / 安装kettle及测试环境准备kattle下载安装JDK安装配置MySQL安装配置 使用练习创建数据库连接转换练习 个人理解 ETL工具的一种,作用是将数据进行抽取,转换,应该是数据中心类型的项目用的比较多,将…

用html+javascript打造公文一键排版系统8:附件及标题排版

最近工作有点忙,所 以没能及时完善公文一键排版系统,现在只好熬夜更新一下。 有时公文有包括附件,招照公文排版规范: 附件应当另面编排,并在版记之前,与公文正文一起装订。“附件”二字及附件顺序号用3号黑…

网络层中一些零碎且易忘的知识点

异构网络:指传输介质、数据编码方式、链路控制协议以及数据单元格式和转发机制不同,异构即物理层和数据链路层均不同RIP、OSPF、BGP分别是哪一层的协议: -RIPOSPFBGP所属层次应用层网络层应用层封装在什么协议中UDPIPTCP 一个主机可以有多个I…

【2023年11月第四版教材】《第1章-信息化发展之<1信息与信息化>》

第01章-信息化发展 1 信息与信息化 大部分为新增内容,预计选择题考4分,案例和论文不考。本章与第三版相同内容将斜体表示。 1 信息与信息化 1、信息是物质、能量及其属性的标示的集合,是确定性的增加。 2、控制论的创始人维纳认为:信息就是信…

【大数据趋势】7月30日 汇率,恒指期货的大数据趋势概率分析。

1. 数据源头之一 : 汇率变化 从程序模拟趋势来看,美元在持续弱势状态,周线上正在构建一个新的下跌趋势,而且正在反抽过程中,即将完成,如果没有外部干预,会顺势往下。从月线来看,高点逐步降低&a…

学习记录——Octave Convolution、LSK

Octave Convolution 2019 ICCV 自然世界中的图像存在高低频,卷积层的输出特征图以及输入通道,也都存在高、低频分量。 低频分量支撑的是整体轮廓,高频分量则关注细节,显然,低频分量是存在冗余的,在编码过程…

区块链学习笔记

区块链技术与应用 数组 列表 二叉树 哈希函数 BTC中的密码学原理 cryptographic hash function collsion resistance(碰撞抵抗) 碰撞指的是找到两个不同的输入值,使得它们的哈希值相同。也就是说,如果存在任意两个输入x和y,满足x ≠ y…

AC+FIT(瘦AP)配置浅谈

FIT ensp实验材料 :pc、路由器、三层交换机、二层交换机、ac、ap 保证连通性: 根据ac与ap设计好的ip配置,使之可以通讯 ac与ap可以实现跨网段管理 1、设置三层交换机的vlan 与vlanif信息 dhcp enable //开启dhcp ip pool forap //…

WEB:unseping

背景知识 php序列化和反序列化 命令执行绕过方式 题目 进行代码审计 可知为反序列化 整体是创建case类,可接受post传来的ctf值 _consturuct函数,是在函数调动前启用,构造了$method和$args两个变量。 _dexstruct函数在变量摧毁的时使用,所…

SQL 执行计划管理(SPM)

一、SPM 需求背景 任何数据库应用程序的性能在很大程度上都依赖于查询执行,尽管优化器无需用户干预就可以评估最佳计划,但是 SQL 语句的执行计划仍可能由于以下多种原因发生意外更改:版本升级、重新收集优化器统计信息、改变优化器参数或模式…

IT技术面试中常见的问题及解答技巧

在IT技术面试中,面试官常常会问到一些常见的问题,针对这些问题,我们可以充分准备和提前准备一些解答技巧。下面我将分享一些我个人的经验和观察,希望对大家有所帮助。 请介绍一下你的项目经验。 在回答这个问题时,我们…

Linux命令大全

目录 第一章、系统命令1.1)系统命令1.2)目录结构1.3)编辑命令vi/vim 第二章、文件操作命令(区分大小写)2.1)查看查找文件和文件信息,切换目录2.2)新建/删除/复制/移动修改文件和文件…

go 如何知道一个对象是分配在栈上还是堆上?

如何判断变量是分配在栈(stack)上还是堆(heap)上? Go和C不同,Go局部变量会进行逃逸分析。如果变量离开作用域后没有被引用,则优先分配到栈上,否则分配到堆上。判断语句:…

苍穹外卖day10——订单状态定时处理(Spring Task)、来单提醒和客户催单(WebSocket)

预期效果 对于超时没处理的需要定时程序处理。基于SpringTask实现。 来单提醒和客户催单。基于WebSocket实现。 Spring Task 介绍 Cron表达式 周几通常不能和日一起指定。 cron表达式在线生成器 在线Cron表达式生成器 入门案例 创建定时任务类 /*** 定义定时任务类*/ Slf4j…