软件架构---云架构

Posted sdysyhj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件架构---云架构相关的知识,希望对你有一定的参考价值。

云结构(cloud architecture)主要解决扩展性和并发的问题,是最容易扩展的架构

它的高扩展性,主要原因是没使用中央数据库,而是把数据都复制到内存中,变成可复制的内存数据单元。然后,业务处理能力封装成一个个处理单元(prcessing unit)。访问量增加,就新建处理单元;访问量减少,就关闭处理单元。由于没有中央数据库,所以扩展性的最大瓶颈消失了。由于每个处理单元的数据都在内存里,最好要进行数据持久化。

这个模式主要分成两部分:处理单元(processing unit)和虚拟中间件(virtualized middleware)。

  • 处理单元:实现业务逻辑
  • 虚拟中间件:负责通信、保持sessions、数据复制、分布式处理、处理单元的部署。

虚拟中间件又包含四个组件。

  • 消息中间件(Messaging Grid):管理用户请求和session,当一个请求进来以后,决定分配给哪一个处理单元。
  • 数据中间件(Data Grid):将数据复制到每一个处理单元,即数据同步。保证某个处理单元都得到同样的数据。
  • 处理中间件(Processing Grid):可选,如果一个请求涉及不同类型的处理单元,该中间件负责协调处理单元
  • 部署中间件(Deployment Manager):负责处理单元的启动和关闭,监控负载和响应时间,当负载增加,就新启动处理单元,负载减少,就关闭处理单元。

优点

  • 高负载,高扩展性
  • 动态部署

缺点

  • 实现复杂,成本较高
  • 主要适合网站类应用,不合适大量数据吞吐的大型数据库应用
  • 较难测试

 

业务上云,在面临海量的业务数据,如何在层出不穷的数据库中选择适合自身业务应用的解决方案,成为架构设计的难点。

传统的集中化存储,如将所有数据存储在Oracle中的方式已经没有办法满足现在多样的数据类型与使用要求。采用“分而治之”的方式,更符合现在云化架构的整体实现思路。

这里为大家分享一下数据库的选型原则,并提供一个真实的案例给大家作为参考。

选型原则:

数据层选型时,要考虑一下六个数据特点,选择合适的数据存储解决方案。

  • 数据类型 , 关系型数据、KV数据、视频、图片、文件
  • 数据量 , 万级、百万级、千万级、亿级别
  • 实时性/一致性 , 实时访问、准实时访问、分钟级延迟、小时级延迟、天级查询
  • 并发度 , QPS、TPS、响应时间
  • 使用场景 , 实时业务、报表分析、历史归档数据、多维查询、正则查询
  • 数据来源 , 文件、数据同步、消息队列、数据库

结合以上六点,选择合适的数据存储技术形成数据层解决方案。

这里举几个选型的例子:

  • 海量关系型数据+实时性高+高并发:可以选择分布式关系型数据库,商业的如阿里云DRDS、POLARDB,开源的如MyCAT等。
  • 多维度查询+正则查询+准实时+海量数据存储:可选择搜索引擎,如Elasticsearch
  • 规则类数据/高并发KV类数据:Redis/Redis Cluster
  • 历史归档数据:阿里DRDS/Hbase
  • 视频图片文件:可选择分布式文件系统或对象存储,商业的如阿里OSS,开源的HDFS、FastDFS、GlusterFS、CephFS

来源:

http://www.ruanyifeng.com/blog/2016/09/software-architecture.html

http://cloudarchitectures.cn

以上是关于软件架构---云架构的主要内容,如果未能解决你的问题,请参考以下文章

云原生|我对云原生软件架构的观察与思考

软件架构---云架构

云架构及其基本组件

云原生时代来临之际,对软件架构设计的思考

京东云开发者|探寻软件架构的本质,到底什么是架构?

云原生时代开源监控软件Prometheus架构介绍