手机:17359299796
全国免费客服电话 17359299796 邮箱:A3669372910@163.com
手机:17359299796
电话:17359299796
地址:福建省漳州市龙文区朝阳北路1号办公楼205室
发布时间:2023-07-12 16:42:24 人气:
V7768-320000 GE
因此,这种方法使用较少,一般用于小体。监视数据库更改日志该方法需要创建一个新的服务来监视数据库更改日志,一旦发现相关表发生了更改,就会触发冷热分离逻辑。该方法分为两个子方法,一个子方法是直接触发冷热分离逻辑另一种是将表更新数据发送给团队(它可以是自定义公共列表或MO),订阅在从团队获取数据后放入冷热分离的逻辑。该方法的优点是与交易码完全解耦,具有较低的延迟,但缺点和方法根据同一日期区分冷热数据是不可能的,并且会出现事务码和冷热分离逻辑码一起对同一块数据进行操作的问题,即并发问题。定期扫描数据库此方法还创建了一个新服务来定期扫描数据库。通常我们会使用任务调度平台来实现它,或者通过第三方的开源库/组件。当然,如果你愿意,你也可以通过编写一个操作系统定时任务来实现它。

这种方法的优点是它与事务代码分离,并且可以基于日期和时差冷热数据不同的缺点是不能做到实时性。根据以上三种方法的描述,工单系统适合采用定期扫描数据库进行冷热分离的方法。如何分离冷热数据有没有一种方法可以分离冷热数据解决方案解决了,所以在本节中,我们来看看如何区分冷热。冷热分离的基本流程如下:识别冷热数据;将数据插入冷库;删除热存储中的冷数据。要结束这三个基本原则100%肯定不会有问题,所以我们必须用代码来保证数据的最终一致性。为了达到事实的一致性,我们可以在工作订单表中添加一个新列冷数据(是,否,默认值:否)。首先,冷热数据分离服务将所有发现的冷数据标记为冷数据,然后将冷数据迁移到冷存储中,迁移完成后从热存储中删除相应的数据。假定在移动或删除数据时如果发生异常,那么我们需要在事务代码中添加重定位和删除数据的重试机制(这里通常使用主流的重试库,如Polly inNET、Java中的guava-retry等)。如果重试几次后仍然不成功,则代码可以停止执行数据冷热分离并发出警告,或跳过不成功的数据,继续执行后续的数据迁移。在删除和跳过失败的情况下,很有可能在下次分离冷热数据时,将重复的数据插入冷库然后我们需要在插入之前确定数据在冷库中是否存在,或者使用数据库的幂等操作来完成插入操作(如insert…MySQL数据库的Duplicate Key Update语句)。这里,我们考虑a问题是工单系统有大量的数据。如果一次性将所有的冷数据插入冷库,速度会很慢,可能需要几十分钟甚至几个小时。解决这一问题的绑定方法有两种:一种是批处理,另一种是多线程处理。
相关推荐