加入收藏 | 设为首页 | 会员中心 | 我要投稿 宣城站长网 (https://www.0563zz.cn/)- 数据湖、行业智能、边缘计算、开发、备份!
当前位置: 首页 > 站长资讯 > 评论 > 正文

满足简单编辑需求的开源图像编辑器

发布时间:2021-02-15 16:09:30 所属栏目:评论 来源:互联网
导读:这两个操作一起成功,或者一起失败!如果采用双写的方法,是避不开这个问题的! 那么有没有通用的办法来解决这些问题呢? 有的,只要能按顺序记录数据的变更即可!那具体怎么做呢,我们继续往下看! 改良方案 假设,如果我们能将数据按顺序记录,写入某个消息

这两个操作一起成功,或者一起失败!如果采用双写的方法,是避不开这个问题的!

那么有没有通用的办法来解决这些问题呢?

有的,只要能按顺序记录数据的变更即可!那具体怎么做呢,我们继续往下看!

改良方案

假设,如果我们能将数据按顺序记录,写入某个消息队列,然后其他系统按消息顺序恢复数据,看看what happen?

此时架构图如下

 

这就是我们标题中所提到的双写!那么,双写会带来什么坏处呢?OK,继续往下看!

双写缺点

一致性问题

打个比方我们现在有两个client,同时往两个DataSouce写数据。

  •  一个client往里头入X为1
  •  一个client往里头入X为5

那么会有如下情形出现

 

某日,阿雄跑去面试!于是有如下情形

面试官:"阿雄是吧,做做自我介绍!"

阿  雄:"我叫阿雄,来自某a国际电商公司!"

面试官:"我看你项目里用了elasticsearch,你是怎么同步数据的呢?"

阿  雄:"在代码里写入数据库的时候,同时再写入elasticsearch!"

面试官:"那你如何保证写入数据库,和写入elasticsearch原子性问题呢?万一写入数据库成功了,写入elasticsearch失败了怎么处理?"

阿  雄:"我还是回去等通知吧!"

OK,以上情形纯属虚构,如有雷同,绝对巧合!

其实这篇文章所探讨的数据同步策略并不限于某两种固定的存储系统之间,而想去探讨一种通用的数据同步策略。主要分为以下三个部分

  •  (1)背景介绍
  •  (2)双写缺点
  •  (3)改良方案

正文

背景介绍

话说阿雄在加入某a国际电商公司的时候,业务系统十分简单,一个database就能搞定一切!

可是某a国际电商公司在产品韩的领导下,业务增长迅速,阿雄发现了数据库越来越慢,于是乎阿雄加入了一些缓存,如redis来缓存一些数据,提高系统的响应能力。

又过了一段时间,产品韩发现搜索的速度灰常慢,让阿雄去改。阿雄在网上发现,现在业内都用一些elasticsearch做一些全文检索的操作,于是乎阿雄将一些需要全文检索的数据放入elasticsearch,提高了系统的搜索能力!

随着数据的膨胀,阿雄慢慢的发现了,对数据库做一些数据分析操作,性能明显的跟不上了。于是乎阿雄将数据库里的数据,导入hadoop,然后进行数据分析。

(省略一万字….)

最后,阿雄和产品韩幸福的在一起了。

OK,好,现在分析上面的场景!思考第一个问题

1、在database,redis,elasticsearch,hadoop中的数据是有关系的,还是彼此独立的?

显然是有关系的,在这几个数据源中的数据都是相关的。只是格式不一样而已!例如,对于一条Product数据,在数据库里是


 

(编辑:宣城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读