System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Redis无锁分布式数据高并发处理框架系统技术方案_技高网

一种基于Redis无锁分布式数据高并发处理框架系统技术方案

技术编号:40945205 阅读:8 留言:0更新日期:2024-04-18 15:02
本发明专利技术属于新兴信息技术的云计算领域,公开了一种基于Redis无锁分布式数据高并发处理框架系统,包括分布式系统和缓存系统,其中,系统的核心业务逻辑全部由Lua脚本实现,在Redis中将整个Lua脚本作为一个整体执行,具体包括:通过加载事先编写和准备要执行的Lua脚本,然后使用EVAL或EVALSHA命令调用执行缓存在SHA1摘要服务器端的Lua脚本,再通过调用Lua脚本框架函数,对Lua脚本框架函数接口进行封装,实现Lua脚本框架函数业务逻辑,最后采集Lua脚本执行过程中产生的日志并进行持久化。本发明专利技术通过lua脚本框架封装业务逻辑,提供类似API库接口的访问方式,无需使用事务,减少网络开销。

【技术实现步骤摘要】

本专利技术属于新兴信息技术的云计算领域,具体的说是一种基于redis无锁分布式数据高并发处理框架系统。


技术介绍

1、分布式数据处理是指利用分布式计算技术对数据进行处理,而分布式数据高并发处理是处理大量并发请求,通过在多个服务器上分布和协同处理任务,以提高系统的处理能力和性能,这种技术通常涉及到多个分布式组件和服务器之间的通信和协作,以实现负载均衡、资源共享和数据一致性目标。

2、现有的分布式数据高并发处理方法包括:1)垂直拆分,将业务拆分成不同模块,部署在不同服务器上,缺点是需要在不同的服务器上维护不同的业务逻辑,增加了开发和维护的复杂性;2)水平拆分,将数据按规则拆分成多个部分,分别存储在不同的服务器上,缺点是拆分规则难以确定,并且需要保证数据的一致性和完整性;3)数据库集群,将多个数据库节点组成一个集群,实现负载均衡和数据备份,缺点是集群的管理和维护比较复杂,需要专业的数据库管理员进行维护和管理;4)缓存策略,通过缓存技术,将常用的数据存储在内存中,减轻数据库负载,缺点是缓存失效可能会影响系统的可用性和性能;5)异步处理,将耗时操作异步化处理,避免阻塞主线程,缺点是异步处理可能会导致系统的不一致性和延迟问题;6)分布式锁,通过分布式锁技术,实现多个节点之间的互斥访问,缺点是分布式锁的实现和维护比较复杂,并且可能会影响系统的性能;7)数据库读写分离,通过将数据库的读写操作分离到不同的节点上进行处理,提高系统的并发性和可用性,缺点是读写分离可能会导致数据的一致性问题;8)使用nosql数据库,适用于处理大量并发请求和海量数据,缺点是nosql数据库可能不适合所有场景,需要针对具体业务需求进行选择和优化。

3、如授权公告号为cn116302574b的中国专利公开了一种基于mapreduce的并发处理方法,其特征是,采用了分布式计算的方式,可以将大规模的数据划分成多个小的数据块,在不同节点上并行处理,从而大幅度提高数据处理速度。

4、如授权公告号为cn110868349b的中国专利公开了物联网环境下分布式高并发数据采集与处理方法及系统,本专利技术包括:创建进程引导器,初始化类型为nioeventloopgroup的线程组bossgroup和workergroup,启动类型为bootstrasp的数据转发器进程引导器,构造一个继承自通道内绑定处理程序适配器的处理类,添加针对不同协议的处理器处理器,构造主拦截器,利用上述步骤所构建的数据接收引导器来绑定进程端口监听硬件设备发送的数据并解析传入消息队列单元。本专利技术提供的物联网环境下分布式高并发数据采集与处理方法及系统,采用netty框架,支持大批量数据采集。

5、以上现有技术均存在以下问题:1)开发和维护的复杂性高;2)会出现竞态条件;3)难以保证数据的一致性和完整性。


技术实现思路

1、针对现有技术的不足,本专利技术提出了一种基于redis无锁分布式数据高并发处理框架系统,该系统通过redis结合lua脚本实现无锁高并发数据处理框架,再通过lua脚本框架封装业务逻辑,使得业务调用方无需额外学习成本,无需考虑数据海量并发导致的读写一致性的问题。

2、为实现上述目的,本专利技术提供如下技术方案:

3、一种基于redis无锁分布式数据高并发处理框架系统,包括分布式系统和缓存系统,所述分布式系统和缓存系统均采用分布式架构和处理高并发数据,同时将数据存储在多个节点上,

4、分布式系统,用于将系统拆分成多个独立的节点,并使用分布式协议进行通信和协调;

5、缓存系统,用于将常用的数据存储在内存中。

6、具体的,分布式系统包含多个节点和服务器,具体包括:分布式协调模块、负载均衡模块、数据持久化模块、故障处理模块、数据持久化模块、并发控制模块,

7、所述分布式协调模块,利用redis的原子操作和高速缓存特性,对不同分布式组件之间进行协调和数据同步;

8、所述负载均衡模块,用于数据请求根据不同的策略分配到不同的服务器节点上;

9、所述故障处理模块,用于处理系统中的故障和异常情况;

10、所述数据持久化模块,用于将处理后的数据持久化到磁盘或数据库中;

11、所述并发控制模块,负责控制并发操作,通过lua脚本的协程机制实现线程的同步和通信,利用redis提供的watch命令实现乐观锁。

12、具体的,缓存系统包括:数据存储模块、数据同步模块、缓存策略模块、缓存管理模块、监控和管理模块,

13、所述数据存储模块,用于将数据存储在redis中;

14、所述数据同步模块,用于在分布式系统中同步数据,确保多个节点之间的数据一致性;

15、所述缓存策略模块,用于制定缓存策略;

16、所述缓存管理模块,用于管理和维护缓存的运行状态;

17、所述系统管理模块,用于通过redis提供的命令或接口实现对系统的配置和管理。

18、具体的,分布式协调模块是利用redis中的setnx命令实现分布式数据的获取,通过expire命令设置锁的过期时间以防止死锁。

19、具体的,redis无锁分布式系统中的分布式系统和缓存系统中模块的业务逻辑均采用无锁编程实现,以redis为中间件,通过编写lua脚本实现,其中,在redis中执行lua脚本是单线程的,且lua脚本用于执行各种redis操作。

20、具体的,lua脚本运行的具体步骤包括:

21、a1:编写和准备要执行的lua脚本,并使用redis的客户端库或命令行工具,将编写好的lua脚本上传到redis服务器;

22、a2:在启动阶段,先检查是否已加载lua脚本,若没有,则加载lua脚本到脚本的缓存中,但不执行,若加载,则lua脚本返回sha1摘要服务器,供下阶段调用;

23、a3:使用eval或evalsha命令调用执行缓存在sha1摘要服务器端的lua脚本;

24、a4:调用lua脚本框架函数,对lua脚本框架函数接口进行封装;

25、a5:实现lua脚本框架函数业务逻辑;

26、a6:在lua脚本执行完成后,采集lua脚本执行过程中产生的日志并进行持久化。

27、具体的,a1中lua脚本是可复用的,预加载的脚本永久存在redis中。

28、具体的,a4的具体流程如下:

29、a4.1:在分布式系统中引入lua脚本框架,并在lua脚本框架中,定义具体的lua脚本函数;

30、a4.2:对lua脚本函数的接口进行封装,并创建一个封装类,其中,封装类包含调用lua脚本函数的方法;

31、a4.3:使用lua脚本框架提供的api表,从参数列表中获取第一个参数,然后将参数与api表进行比较,若参数不存在,则返回一个包含错误信息的表,若存在,则通过pcall函数调用lua脚本函数,并将剩余本文档来自技高网...

【技术保护点】

1.一种基于Redis无锁分布式数据高并发处理框架系统,其特征在于,包括分布式系统和缓存系统,所述分布式系统和缓存系统均采用分布式架构和处理高并发数据,同时将数据存储在多个节点上,

2.如权利要求1所述的一种基于Redis无锁分布式数据高并发处理框架系统,其特征在于,所述分布式系统包含多个节点和服务器,具体包括:分布式协调模块、负载均衡模块、数据持久化模块、故障处理模块、数据持久化模块、并发控制模块,

3.如权利要求2所述的一种基于Redis无锁分布式数据高并发处理框架系统,其特征在于,所述缓存系统包括:数据存储模块、数据同步模块、缓存策略模块、缓存管理模块、监控和管理模块,

4.如权利要求3所述的一种基于Redis无锁分布式数据高并发处理框架系统,其特征在于,所述分布式协调模块是利用Redis中的setnx命令实现分布式数据的获取,通过expire命令设置锁的过期时间以防止死锁。

5.如权利要求4所述的一种基于Redis无锁分布式数据高并发处理框架系统,其特征在于,所述系统中的分布式系统和缓存系统中模块的业务逻辑均采用无锁编程实现,以Redis为中间件,通过编写Lua脚本实现,其中,在Redis中执行Lua脚本是单线程的,且Lua脚本用于执行各种Redis操作。

6.如权利要求5所述的一种基于Redis无锁分布式数据高并发处理框架系统,其特征在于,所述Lua脚本运行的具体步骤包括:

7.如权利要求6所述的一种基于Redis无锁分布式数据高并发处理框架系统,其特征在于,所述A1中Lua脚本是可复用的,预加载的脚本永久存在Redis中。

8.如权利要求7所述的一种基于Redis无锁分布式数据高并发处理框架系统,其特征在于,所述A4的具体流程如下:

9.如权利要求8所述的一种基于Redis无锁分布式数据高并发处理框架系统,其特征在于,所述A5中业务逻辑是指具体的业务数据处理和操作逻辑,具体包括:通过Redis提供的Lua脚本功能对分布式数据进行读写、更新、删除操作,以及对数据的验证、转换、过滤处理。

10.如权利要求9所述的一种基于Redis无锁分布式数据高并发处理框架系统,其特征在于,所述A6的具体流程如下:

...

【技术特征摘要】

1.一种基于redis无锁分布式数据高并发处理框架系统,其特征在于,包括分布式系统和缓存系统,所述分布式系统和缓存系统均采用分布式架构和处理高并发数据,同时将数据存储在多个节点上,

2.如权利要求1所述的一种基于redis无锁分布式数据高并发处理框架系统,其特征在于,所述分布式系统包含多个节点和服务器,具体包括:分布式协调模块、负载均衡模块、数据持久化模块、故障处理模块、数据持久化模块、并发控制模块,

3.如权利要求2所述的一种基于redis无锁分布式数据高并发处理框架系统,其特征在于,所述缓存系统包括:数据存储模块、数据同步模块、缓存策略模块、缓存管理模块、监控和管理模块,

4.如权利要求3所述的一种基于redis无锁分布式数据高并发处理框架系统,其特征在于,所述分布式协调模块是利用redis中的setnx命令实现分布式数据的获取,通过expire命令设置锁的过期时间以防止死锁。

5.如权利要求4所述的一种基于redis无锁分布式数据高并发处理框架系统,其特征在于,所述系统中的分布式系统和缓存系统中模块的业务逻...

【专利技术属性】
技术研发人员:刘达维
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1