zoukankan      html  css  js  c++  java
  • JAVA架构的演变介绍

    什么是架构

    1、对系统进行有序化重构

    2、分与合的过程

      横向的(水平)  水平分表,数据分到多个表里面,比如1000w数据 ,拆分成多个小表数据

      纵向的(垂直)  列数比较多的表,拆分成多个小表存储不通数据

      大的系统 --> 拆分成很多个子系统,模块,组件

    架构内容

    1、技术(基础架构组) --> 对源码改造,更加适合开发需求

    2、应用架构(面向业务层次)

    3、系统架构 (运维)

    架构师具备的能力

    1、管理能力,人员协调;

    2、技术实力,技术深度和技术面的认识;

    3、沟通表达能力

    4、抽象思维

    架构师要做的事情

    1、业务场景分析:用例图、流程图、时序图

    2、技术的选型(开源)

    3、技术规格说明书

    4、线下架构峰会,扩宽你的你的眼界

    https://www.infoq.cn/

    架构演进(Java演变:jsp/servle --> ssh --> spring boot --> spring cloud)

    1、用户量、业务复杂度、数据量

    2、

     

     

    1、数据库优化,sql

    2、读写分离,读和写进入到不通数据库(mycat,shardingjdbc) 封库分表

    3、搜索引擎 Elasticsearch ,Solr,  Lucene

    4、数据库

    数据库

    TIDB
    PG
    TDSql
    OceanBase


    缓存
    MongoDB
    Hbase
    cassandra
    redis
    memcached


    文件存储
    FASTDFS
    OSS
    COS

    5、数据库优化-拆分

      水平拆分  水平分表,数据分到多个表里面,比如1000w数据 ,拆分成多个小表数据

      垂直拆分  列数比较多的表,拆分成多个小表存储不通数据

      冷热数据库分离,
      
    带来的问题
    跨表查询,查询的条件不是分片键的时候怎么办?

    分布式事物问题?

    6、业务的垂直化拆分 

    电商服务 :  库存,订单,交易 服务拆分; 每一个服务都是独立的单体架构

    问题: 每个服务数据冗余

    演变:把公共服务抽离出来, 库存服务,订单服务,交易服务

    面相服务SOA: 解决信息孤岛【数据不共享】、服务复用 问题 (面相服务SOA≈ 微服务架构)

  • 相关阅读:
    BZOJ 1057 悬线法求最大01矩阵
    POJ 2248
    SPOJ
    51NOD
    2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest J. Judging the Trick
    POJ 1379 模拟退火
    POJ 2420 模拟退火
    Frontend 事后诸葛亮
    【Frontend】Alpha Review 展示博客
    ASE19 团队项目 alpha 阶段 Frontend 组 scrum5 记录
  • 原文地址:https://www.cnblogs.com/laotan/p/13056727.html
Copyright © 2011-2022 走看看