设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 云计算 > 正文

我们一起说说分布式数据服务

发布时间:2022-07-26 15:26 所属栏目:124 来源:互联网
导读:数据存储资源是系统中最重要的组成部分,数据即一切,尤其分布式领域,主要关注以下几点: 高可用性,当遇到网络或者系统故障时,系统仍然保持可用 高扩展,当数据规模变大时,数据存储系统能够自动适应这种变化 高性能,当数据规模和访问规模变大时,性能不
  数据存储资源是系统中最重要的组成部分,数据即一切,尤其分布式领域,主要关注以下几点:
 
  高可用性,当遇到网络或者系统故障时,系统仍然保持可用
  高扩展,当数据规模变大时,数据存储系统能够自动适应这种变化
  高性能,当数据规模和访问规模变大时,性能不受大的影响
  成本,通过成本反映出系统设计是合理的
  安全,遇到各种系统和人为故障时,数据不丢失
  MySQL
  MySQL是OLTP关系型数据库,支持ACID事务,是最主要的存储系统,目前使用的版本是5.7。
 
  MySQL本身不是分布式系统,其支持的数据复制技术,本质上是为了数据容灾使用,但目前基于主从复制进行读写分离,减少单机的读压力。
 
  MySQL服务如果托管在阿里云,可以使用高可用版本,秒级的主从切换,基于云盘的磁盘扩容技术,能够快速复制一个只读节点,减少了很多自建MySQL遇到的各种问题,另外其还提供了很多额外的功能,比如索引分析、SQL审查、慢查询分析、动态扩容。
 
  虽然云托管RDS,但本质上还是MySQL,仍然会遇到很多问题,比如:
 
  数据存储不支持分片,只能通过分库分表的方式进行横向扩展,目前应用层也不支持分库分表的路由,即使分表,拆分表的时候还是会遇到很多问题
  如果表设计和索引设计不合理,大量的更新,仍然会遇到主从延迟的问题,从应用层面是很难彻底解决的
  阿里云RDS只支持一个负载均衡主从分离,所以后台、队列应用使用360 Atlas读写分离服务,目前是一个单点,且也会影响读写性能。
  MySQL应用规范目前还没有建立,比如什么样的应用应该选择MySQL,使用MySQL很大程度是为了事务,如果没有事务的场景是否可以选择其他的数据库?
  阿里云官方提到,单表记录数超过500w,性能会极具下降
  DDL操作,尤其对于大表操作,会引起很大的同步延迟问题
  云托管的RDS本质上还是基于ECS+云盘搭建的,数据的增长、备份、性能、迁移、升级、只读实例、磁盘容量、Binlog延迟还是会显露出来。
 
  那未来如何?其实云厂商也在探索,提出了云原生数据库、云原生分布式数据的概念,比如阿里云的PolarDB、PolarDB-X。
 
  在应用设计上存在以下几个问题:
 
  存储和缓存混合使用,无法拆分,对于容量估算不透明
  应用模式上,没有很好的规范,比如缓存更新机制标准、统一Lib应用包
  通过阿里云Redis提供的部署架构,可以很好的理解它的应用场景:
 
  标准版-双副本:服务可靠,数据可靠,比较标准的使用模式,不管是存储还是缓存服务都可用
  集群版:通过代理模式和分片可以构建出一个可伸缩的集群模式,解决Redis自身单线程瓶颈,满足大容量、高性能的业务需求,而且副本集主要做恢复用,很适合存储场景,不存在同步延迟的问题
  读写分离架构:对于不关注同步延时的问题,比如缓存场景,可以选择这种模式,当容量不够的适合,通过客户端的一致性Hash技术扩容多个Redis实例就可以
  后续确定Redis使用规范,拆分存储和缓存场景,基于统一Lib包,就能解决大部分问题。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读