分布式服务器中的数据安全问题及其解决办法

1 问题描述

最近笔者在工作中遇到了这样一个问题:对于离线的数据/远端的数据,如何保证在处理过程中的数据安全。

服务器P是我们的业务服务器,负责处理各项业务。比如聊天服务器,处理各种聊天相关的逻辑;邮件服务器,处理和邮件相关的部分。

服务器P处理业务,是需要数据的,但一般而言,进程中存储的,一般只是在线用户的数据。对于不在线的用户来说,数据是存放在数据中心的(有可能是数据库,也有可能是缓存中心)等,总之是不在服务器P上的。

假定数据中心是服务器D,某个时刻,服务器P接到一个请求,要求对用户user1的数据进行修改。user1并不是一个在线用户,服务器P上没有user1的数据。

服务器P的处理逻辑如下:

1 服务器P收到请求,发现没有数据,向服务器D(数据中心)拉取数据,并等待数据到来。

2 服务器P拉取到数据,进行数据处理。

3 将处理后的数据发送回数据中心记录。

看上去逻辑没什么问题,但是,当服务器P处于拉取的过程中(已经发送了拉取协议,但是数据还没有取到),服务器P又收到了一条请求,要求对用户user1的数据进行修改。如果按照上面的处理逻辑,服务器P检测到没有数据,就再发起拉取协议的请求,从服务器D拉取数据,等待数据回来并做处理。

后果:第一次的数据处理后的数据,将会被覆盖掉,引发数据安全问题。


2 解决方案

方案的流程图如下图所示:

紫色部分是操作的发起者,它有可能是用户,有可能是运维人员等。

浅绿色部分是服务器P,是处理操作的地方。

橙色是服务器D,存放所有用户的数据。

服务器P新的处理逻辑如下:

1 服务器P收到操作请求,首先判断该数据是否有缓存(data_map里是否有该数据)。如果有,则直接进行处理;如果没有进入步骤2。

2 服务器P判断当前该数据是否处于拉取中。如果处于拉取状态,则忽略拉取,只是将操作放入到待处理的操作池(handler队列)中;如果不处于拉取状态,服务器P发起一个拉取,并将该数据的拉取状态设置为True,同时将操作放入到待处理的操作池中。

3 服务器P接收到数据中心返回的数据(data_store),通知操作池中所有关注此数据的操作。

4 操作池中的操作,将按照先入先出的顺序,依次对该数据进行处理。

5 将数据写回到数据中心,并根据条件(比如10分钟),将数据从data_map中移除。


3 总结

分布式服务器中,数据安全是很重要的部分,因此开发者对于这部分的逻辑,一定要多检测多验证,保证数据的安全性和一致性。

关注博主获取更多服务器相关的知识~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我很清楚地明白了您的要求。关于分布式数据库分片的概念和相关内容,我可以给您一个比较详细的介绍。 1. 概念 分片是分布式数据库一种重要的数据划分和管理方式,它把一个大型的数据库拆分成多个小片段(即分片),每个分片只保存部分数据,不同的分片可以分配到不同的机器上进行管理和存储。而在使用分片的时候,需要通过一定的分片策略来决定将数据划分到哪些分片,以达到数据分布均衡和负载均衡的目的。 2. 优缺点 分片的优点主要包括: (1)分布式存储:将大型数据拆分成多个小数据段存储在不同的机器上,能够提高数据存储的可靠性和安全性,同时也能增加数据的读写效率。 (2)横向扩展:通过增加机器来扩大数据库的容量和性能,而不是通过更换更高效的硬件设备或者单点增加服务器的硬件性能。 (3)负载均衡:数据的分片能够有效地平衡不同机器上的读写请求,以及减轻服务器的压力,从而使整个数据库系统更加灵活和健壮。 分片的缺点主要包括: (1)数据一致性:因为数据被划分到不同的机器,可能会出现数据不一致的情况,如何保证数据一致性是分片需要解决的关键问题之一。 (2)系统复杂性:分片需要对多个机器进行协调和管理,增加了系统的复杂性和难度,需要更多的技术和管理人员来进行维护和操作。 3. 策略 常见的分片策略包括: (1)基于哈希的分片策略:通过哈希算法将数据分配到不同的分片,能够有效地保证数据分布的均匀性和一致性。 (2)基于范围的分片策略:按照数据范围将数据分配到不同的分片,如按照日期进行划分,例如一个月的数据分配到一个分片,实现起来比较简单。 (3)基于复制的分片策略:将数据副本保存到多个节点上,这样可以在系统出现故障时,快速切换到备份节点,保证系统的可靠性。 4. 场景用例 分片技术在大型的分布式应用得到了广泛的应用,例如社交网络、电商网站、物联网等。 (1)社交网络:社交网络通常包含大量的用户资料和社交关系数据,这些数据可以根据用户ID进行分片管理,同时数据一致性和查询性能也可以通过哈希和复制策略进行优化。 (2)电商网站:电商网站通常包含大量的订单和交易数据,这些数据可以按照时间、地域和商品类型进行分片管理,同时为了保证系统的高可用性,可以采用复制策略进行备份和恢复。 (3)物联网:物联网通常包含大量的传感器数据和设备数据,这些数据可以按照设备ID和时间进行分片管理,同时为了保证数据的实时性和准确性,可以采用哈希策略实现近似最优查询。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值