zoukankan      html  css  js  c++  java
  • 软件架构---云架构

    云结构(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

  • 相关阅读:
    很实用的jQuery事件
    移动端touchstart,touchmove,touchend
    Django的学习(二)————Templates
    Django的学习(一)————初入django
    Tkinter添加图片
    HierSort(希尔)————Java
    Bubble(冒泡排序)————Java
    类+进程池的方法爬取喜马拉雅
    Ajax的爬取心得
    python中将两个数组压缩成一个数组
  • 原文地址:https://www.cnblogs.com/sdysyhj/p/11057907.html
Copyright © 2011-2022 走看看