首页 > 编程语言 > 详细

JAVA架构的演变介绍

时间:2020-06-20 20:49:28      阅读:117      评论:0      收藏:0      [点我收藏+]

什么是架构

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

技术分享图片

 

JAVA架构的演变介绍

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!