A_84_java架构相关
2021-04-15 22:57:26 1 举报
AI智能生成
全面、高效的知识图谱:A_84_java架构相关!! 全面又深度的提升认知,达到实际应用的目的! 建议先纵观全局,掌握好大方向。 再根据自己的需要,针对性的学习某一个点,最后做到逐步由点及面。
作者其他创作
大纲/内容
术语
面向服务的架构(SOA)
关键字
三个纬度:演化、模式、要素
五个要素: 性能,可用性,伸缩性,扩展性,安全
架构演化历程
架构模式
集群
负载均衡
分布式
分层:结构分层
分割:业务分割,后分离
缓存
本地
远程
异步
冗余
自动化
安全
拆分(分而治之)
横拆(上下分)
应用:前端,应用,服务
数据库:读写分离
竖切(左右分)
业务
拆分部署 = 分布式
dubbo
Spring Cloud
冗余
容灾
高可用
集群
异步/队列
消息队列
阿里开源的RocketMQ
线程池
性能
视角
指标
测试方法
参考
★ 大型网站技术架构-入门梳理
架构设计基础知识整理
备份地址
一种适合创业公司的技术架构方案
大型网站架构技术一览
★ 各大互联网公司架构演进之路汇总
大型网站架构演化历程-HollisChuang's Blog
单机含库-单机分库-缓存改善-集群负载-读写分离-服务分布式&MQ-数据库分布式&中间件-微服务&zk
白话网站架构演进 - 简书
软件架构模式
架构笔记-Q1n6
大型网站技术架构读书笔记-伸缩性和扩展性架构
伸缩性和扩展性区别
大型网站技术架构读书笔记-高可用架构
大型网站技术架构读书笔记-高性能架构
主题资讯
掘金-标签-架构
推酷-主题-架构
推酷-站点-架构
架构师之路-微信公众号
TechTarget SOA - 企业级面向服务架构专业SOA网站 - TechTarget中国
架构 & 设计 - infoQ.com
【迷你书】 架构 & 设计 - infoQ.com
概述
三个纬度:演化、模式、要素
五个要素: 性能,可用性,伸缩性,扩展性,安全
架构演化历程(环境)
初始阶段的网站架构:一台服务器,上面同时拥有应用程序,数据库,文件,等所有资源。例如 LAMP 架构
应用和数据服务分离:三台服务器(硬件资源各不相同),分别是应用服务器,文件服务器和数据库服务器
使用缓存改善网站性能:分为两种,缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器的远程缓存
使用应用服务器集群改善网站并发处理能力:通过负载均衡调度服务器来将访问请求分发到应用服务器集群中的任何一台机器
数据库读写分离:数据库采用主从热备,应用服务器在写数据时访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库。应用服务器使用专门的数据访问模块从而对应用透明
使用反向代理和 CDN 加速网站响应:这两者基本原理都是缓存。反向代理部署在网站的中心机房,CDN 部署在网络提供商的机房
使用分布式文件系统和分布式数据库系统:数据库拆分的最后手段,更常用的是业务分库
使用 NoSQL 和搜索引擎:对可伸缩的分布式有更好的支持
业务拆分:将整个网站业务拆分成不同的应用,每个应用独立部署维护,应用之间通过超链接建立联系/消息队列进行数据分发/访问同一数据存储系统
分布式服务:公共业务提取出来独立部署
总结
单机含库-单机分库-缓存改善-集群负载-读写分离-服务分布式&MQ-数据库分布式&中间件-微服务&zk
架构模式(方法)
拆分(分层/分割)
集群
负载均衡
分布式
分层:结构分层
分割:业务分割,后分离
缓存
本地
远程
异步
冗余
自动化
安全
核心要素(目标)
高性能
指标
响应时间:指应用执行一个操作需要的时间
并发数:指系统能够同时处理请求的数目
吞吐量:指单位时间内系统处理的请求数量
性能计数器:描述服务器或者操作系统性能的一些数据指标
分类
web前端性能
应用服务器性能
存储服务器性能
性能优化:软(带宽限制,停顿发现,缓存,提前计算,事务降级,jvm,软均衡) ,硬
缓存机制:中层响应,下层模拟再同步,热点提取,内存提速 /缺点:牺牲一致性
最高性能的缓存应该在客户端,由于容量,范围等原因,每层都缓存的不同意义
Hibernate缓存
一级
session(连接会话)的缓存
第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理
Session内置不能被卸载,Session的缓存是事务范围的缓存(Session对象的生命周期通常对应一个数据库事务或者一个应用事务)
持久化类的每个实例都具有唯一的OID
理解:事务间的save并未提交,而是放入一级缓存,再查询时可从缓存中提取。事务结束,session结束时同步数据库
下层模拟再同步
二级
SessionFactory的缓存(可选)
第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存
SessionFactory对象的生命周期和应用程序的整个过程对应
Hibernate二级缓存是进程范围或者集群范围的缓存,有可能出现并发问题
需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别
中层响应
参考
Hibernate中一级缓存和二级缓存使用详解
java框架篇---hibernate之缓存机制
mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache
Hibernate缓存机制和MyBatis缓存机制 - 坦GA的博客 - 博客频道 - CSDN.NET
可用性(Availability)-高可用
高可用的网站架构
灾备:容灾备份
高可用的应用
幂等
无状态
异步(消息队列,削峰作用)
高可用的服务
冗余
高可用的数据
监控
业务层面
核心业务指标变化
快速定位、排查问题,并做出应急响应
系统层面
JVM GC
实例、集群、机房等进行逐级汇总计算
TP99甚至TP999任何一指标低于预设阈值都会触发报警
TP99
满足百分之九十九的网络请求所需要的最低耗时
TP999
满足千分之九百九十九的网络请求所需要的最低耗时
RPC服务之间、访问缓存、访问数据库
调用链条薄弱环节的快速发现,快速解决
基础设施
网络质量和机器健康度/内网
带宽、丢包率、重传、连通性,CPU、内存、磁盘
伸缩性(Scalability)
网站架构的伸缩性设计
不同功能进行物理分离实现伸缩
单一功能通过集群规模实现伸缩
应用服务器集群的伸缩性设计
http,DNS,反向代理,ip负载均衡
分布式缓存集群的伸缩性设计
一致性Hash算法
数据存储服务集群的伸缩性设计
关系数据库集群
nosql数据库弹性伸缩
扩展性(Extensibility)
构建可扩展的网站架构
利用分布式消息队列降低耦合性
利用分布式服务打造可复用的业务平台
可扩展的数据结构(如 ColumnFamily 设计)
利用开放平台建设网站生态圈
安全性
攻击与防御
XSS 攻击
注入攻击
CSRF 攻击
其他攻击和漏洞:注释,文件上传,路径遍历
信息加密技术及密钥安全管理
单向散列加密
对称加密
非对称加密
密钥安全管理
信息过滤与反垃圾
分类算法
黑名单
0 条评论
下一页