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≈ 微服务架构)

原文地址:https://www.cnblogs.com/laotan/p/13056727.html