码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA架构的演变介绍

时间:2020-06-20 21:29:11      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:介绍   读写分离   oceanbase   文件   memcached   复杂度   选型   数据量   跨表   

什么是架构

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架构的演变介绍

标签:介绍   读写分离   oceanbase   文件   memcached   复杂度   选型   数据量   跨表   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!