Java学习思维导图
2021-04-09 17:11:06 1 举报
AI智能生成
指导Java开发人员,成为Java架构师。
作者其他创作
大纲/内容
计算机基础
计算机组成原理
硬件基础架构(冯·诺依曼体系结构)
控制器
指令系统
微命令
微操作
微指令
机器指令
运算器
算术逻辑单元(ALU)
累加器
状态寄存器
通用寄存器组
存储器
外存储器
内存储器
输入设备
输出设备
计算机的组成
主板
总线
CPU
中央处理器
控制器
运算器
存储器
内存
存储器
硬盘
存储器
显卡
GPU图形处理器
运算器
输入设备
鼠标
键盘
触摸屏
TODO: 待补充……
输出设备
显示器
打印机
TODO: 待补充……
操作系统
Windows
Windows Server
Linux
CentOS
Ubuntu
以桌面应用为主
Unix
iOS
Android
计算机网络
物理层
数据链路层
网络层
IP协议
ICMP协议
传输层
UPD协议
TCP协议
应用层
HTTP协议
三次握手、四次挥手
FTP协议
SMTP协议
数据结构与算法
数据结构(Data Structure )
数组(Array)
链表(Linked List)
堆(Heap)
先进先出
栈(Stack)
后进先出(先进后出)
队列(Queue)
先进先出
树(Tree)
二叉树
完美二叉树
完全二叉树
完满二叉树
AVL树
红黑树
B树/B+树
图(Graph)
深度优先遍历
广度优先遍历
散列表(哈希表 - Hash table)
算法(Algorithm)
五大常用算法
递归与分治
动态规划
贪心
回溯法
分支限界法
查找(检索)
顺序查找
二分查找
插值查找
斐波那契查找
树表查找
分块查找
哈希查找
排序
比较类排序
交换排序
冒泡排序
快速排序
插入排序
简单插入排序
希尔排序
选择排序
简单选择排序
堆排序
归并排序
二路归并排序
多路归并排序
非比较类排序
计数排序
桶排序
基数排序
分布式一致性算法
Raft
Paxos
ZAB
Gossip
一致性Hash
TODO: 待补充……
负载均衡(Load Balance)算法
随机(Random)法
加权随机(Weight Random)法
轮询(Round Robin)法
加权轮询(Weight Round Robin)法
最小连接数(Least Active)法
源地址一致性哈希(Consistent Hash)法
TODO: 待补充……
TODO: 待补充……
开发工具
IDE(开发工具)
前端
WebStorm(JetBrains出品)
Visual Studio Code(简称:VS code)
HBuilder
Atom(GitHub出品)
Adobe Dreamweaver CC(Adobe出品)
Sublime Text
后端
IDEA
常用插件
Lombok
Model代码简化插件,结合maven或gradle的lombok的jar包工作
Alibaba Java Coding Guidelines
阿里代码规范插件
Statistic
统计项目代码量
FindBugs
检查代码BUG,如:逻辑问题、依赖问题、性能问题、安全问题、存在漏洞等等
TODO: 待补充……
Eclipse
MyEclipse
TODO: 待补充……
项目构建管理工具
Maven
Maven常用命令
mvn package
mvn install
mvn clean
mvn deploy
Maven仓库
私有仓库
Nexus
云仓库
阿里云效Maven仓库
常用插件
CheckStyle
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
</dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
</dependency>
FindBugs
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.5</version>
</dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.5</version>
</dependency>
TODO: 待补充……
Gradle
代码版本管理工具
Git
Git仓库
私有仓库
GitLab
GitLab安装教程
CI/CD(持续集成/持续交付)
自动化单元测试
代码规范校验
maven插件:CheckStyle
代码BUG检测
maven插件:FindBugs
Push Request
用于功能分支合并到主分支时使用的功能
云仓库
GitHub
Gitee
Coding
阿里云效代码管理
TODO: 待补充……
分支(Branch)
分支使用规范
SVN
运维技术
Linux系统
Linux常用命令
Shell脚本
容器技术
Docker
Docker常用命令
Dockerfile
自动化部署
Jenkins
服务治理
K8s
Java语言
语言基础
JDK1.8新特性
lambda
函数式接口
@FunctionalInterface
方法引用、构造函数引用
Stream API
对集合的操作
接口中的默认方法(default)和静态方法(static)
新时间日期API
Optional
避免空指针异常
该JDK版本自带BUG
ConcurrentHashMap.computeIfAbsent嵌套的死锁BUG
特点
面向对象
三大特性
封装
继承
多态
基础语法
语法学习
关键字
package
import
类型
类型和实例
interface
class
transient
enum
extends
implements
this
super
new
基本数据类型
short
int
long
float
double
boolean
true
false
byte
char
null
void
修饰符
访问修饰符
default
private
protected
public
非访问修饰符
static
final
abstract
synchronized、volatile
线程安全编程需要
try、catch、finally
throw
throws
return
continue、break
do
while
for
if、else
switch
instanceof
native
数据类型
基本数据类型
布尔型
boolean
false
数值型
整数型
byte
0
short
0
int
0
long
0L
字符型
char
'u0000'
字符型也属于整数型,因为它由2字节组成,与0~2的16次方-1的数字内存一致
浮点型
float
0.0f
double
0.0d
引用类型
类
抽象类
接口
数组
空类型
null
枚举
泛型
异常(Throwable)
异常(Exception)
RuntimeException(无需throws)
空指针:NullPointerException
参数非法:IllegalArgumentException
非RuntimeException(需throws或捕获处理)
类未找到:ClassNotFoundException
IO异常:IOException
错误(Error)
内存溢出:OutOfMemoryError
未找到类定义:NoClassDefFoundError
集合
Collection
List
特性
有序
可重复
常用数据结构
数组
链表
List接口
ArrayList
LinkedList
Vector
TODO: 待补充……
Set
特性
无序
不可重复
常用数据结构
Set接口
SortedSet接口
TreeSet
HashSet
LinkedHashSet
TODO: 待补充……
Collections工具类:方便操作集合
常用方法
TODO: 待补充……
Map
Map接口
SortedMap接口
TreeMap
ConcurrentMap接口
ConcurrentHashMap
HashMap
LinkedHashMap
Hashtable
TODO: 待补充……
IO
网络编程
Socket
JDBC
反射
注解
代理
静态代理
动态代理
JDK动态代理
只支持对接口进行代理
CGLib
Javassist
ASM
ByteBuddy
TODO: 待补充……
语言进阶
设计模式
六大设计原则
Single Responsibility Principle:单一职责原则
Open Closed Principle:开闭原则
Liskov Substitution Principle:里氏替换原则
Law of Demeter:迪米特法则
Interface Segregation Principle:接口隔离原则
Dependence Inversion Principle:依赖倒置原则
三大类设计模式(23种)
创建型模式(5种)
工厂方法模式
抽象工厂模式
单例模式
建造者模式
原型模式
结构型模式(7种)
适配器模式
装饰器模式
代理模式
外观模式
桥接模式
组合模式
享元模式
行为型模式(11种)
策略模式
模板方法模式
观察者模式
迭代子模式
责任链模式
命令模式
备忘录模式
状态模式
访问者模式
中介者模式
解释器模式
多线程/并发编程
TODO: 待补充……
Java代码规范
阿里巴巴P3C规范
阿里开发手册
阿里P3C插件
Alibaba Java Coding Guidelines plugin support
BUG查找插件
FindBugs
用于检查代码的BUG。
此插件即有IDE插件,也有maven插件。
此插件即有IDE插件,也有maven插件。
TODO: 待补充……
更优代码
TODO: 待补充……
TODO: 待补充……
JVM(Java虚拟机)
JVM的不同实现
HotSpot VM
Oracle JDK
OpenJDK
GraalVM
基于OpenJDK开发的新的JVM
SpringBoot2.4开始兼容该JVM
比OpenJDK性能更高、运行更稳定
Exact VM
J9 VM(IBM公司开发)
内存结构
运行时数据区
堆:Heap
方法区(永久代):Method Area(一种规范)
规范的不同实现
JDK1.7:永久代:PermGen,HotSpot VM才有
JDK1.8:元空间:Metaspace
老年代:Old(占2/3堆内存)
年轻代:Young(占1/3堆内存)
Eden区:80%
Survivor区1:10%
Survivor区2:10%
栈:Stack
虚拟机栈:VM Stacks
栈帧:Frame
本地方法栈:Native Method Stack
程序计数器:Program Counter Register
执行引擎:Execution Engine
本地库接口:Native Interface
图片示例
GC(Garbage Collection):垃圾回收机制
三种垃圾回收方式
Minor GC:清理年轻代
Major GC:清理老年代
Full GC:清理整个堆内存(包括年轻代和老年代)
算法
Class Loader:类加载机制
JVM参数
标准参数
-help
-server | -client
-version | -showversion
-cp | -classpath
TODO: 待补充……
非标准参数
X参数
-Xint
-Xcomp
-Xmixed
TODO: 待补充……
XX参数
Boolean类型
格式:-XX:[+-][name],例:-X:+UseConcMarkSweepGC、-X:-UseG1GC
-X:[+-]UseConcMarkSweepGC:是否启用CMS垃圾收集器
-X:[+-]UseG1GC:是否启用G1垃圾收集器
TODO: 待补充……
非Boolean类型
格式格式:-XX:[name]=[value],例:-XX:CICompilerCount=2
缩写写法:-X??[value],例:-Xms100M
-Xms(-XX:InitialHeapSize):初始堆内存大小
-Xmx(-XX:MaxHeapSize):最大堆内存大小
-Xss(-XX:ThreadStackSize):线程堆栈内存大小
TODO: 待补充……
JVM调优
JVM进程分析
JVM信息
PID:进程ID
Thread:线程
CPU
IO:输入输出
Memary:内存
Heap Memary:堆内存
Stack Memary:栈内存
GC
JVM参数
TODO: 待补充……
JVM调优工具
Java自带工具
jvisualvm
插件
Visual GC
TODO: 待补充……
jstat
jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]
使用教程
jstack
使用教程
TODO: 待补充……
阿里开源工具
Arthas JVM
官网
用户文档
GitHub开源项目
TODO: 待补充……
问题及解决
内存泄漏、内存溢出
TODO: 待补充……
死循环、死锁
使用java工具:jstack,导出所有线程的堆栈信息,并检查死锁的原因。
频繁执行GC
TODO: 待补充……
CPU占用很高
TODO: 待补充……
IO占用很高
TODO: 待补充……
TODO: 待补充……
数据库
关系型数据库(RDBMS)
MySQL
库
表
字段
约束
索引
事务
事务的特点:ACID
Atomicity(原子性)
Consistency(一致性)
Isolation(隔离性)
Durability(持久性/耐久性)
隔离级别
@Transactional(isolation = DEFAULT)
使用数据库默认隔离级别,每种数据库支持的事务隔离级别不一样。并且可以修改默认隔离级别。
MySQL查询当前隔离级别的SQL
select @@tx_isolation
四种隔离级别
READ_UNCOMMITTED(读未提交)
可读取未提交事务的操作数据,最低的隔离级别,一般都没有用的。这种情况会出现脏读
READ_COMMITED(读已提交)
一个事务等另一个事务提交之后才可进行读取,解决了脏读问题,但会出现不可重复读
REPEATABLE_READ(可重复读)
解决一个事务重复读取数据,但由于其他事务修改了数据导致多次读取的数据不一致的问题
SERLALIZABLE(序列化/串行化)
最高的事务隔离级别,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。
但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用
但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用
并发事务产生的问题及解决解决方案
脏读
TODO: 待补充……
不可重复读
TODO: 待补充……
幻读
TODO: 待补充……
使用隔离级别解决图示
事务相关参考资料
Spring声明式事务@Transactional 详解,事务隔离级别isolation和事务传播行为propagation
SQL语句
存储引擎
InnoDB
支持事务
MyISAM
不支持事务
使用场景
只有Insert和Select的数据表
Archive
不支持事务
使用场景
只有Insert和Select的数据
例子
日志数据
归档数据
Memory
不支持事务
使用场景
临时数据
数据量不大
各引擎能力表格
Oracle
非关系型数据库(NoSQL数据库)
Redis
MongoDB
数据库设计
三大范式
第一范式:确保表中每列的原子性
第二范式:确保表中的每列都和主键相关
第三范式:确保每列都和主键列直接相关,而不是间接相关
五大约束
PRIMARY KEY:主键约束
UNIQUE:唯一性约束
DEFAULT:默认值约束
NOT NULL:非空约束
FOREIGN KEY:外键约束
六大设计步骤
1. 需求分析阶段
2. 概念结构设计阶段
3. 逻辑结构设计阶段
4. 数据库物理设计阶段
5. 数据库实施阶段
6. 数据库运行与维护阶段
性能优化
SQL性能调优
SQL分析:explain
日常积累
SELECT子句中避免使用“*”
WHERE子句的连接顺序
减少访问数据库的次数
TODO: 待补充……
数据库系统参数优化
MySQL
TODO: 待补充……
Web
前端
HTML、HTML5
CSS、CSS3、CSS4
JavaScript
jQuery
Ajax
NodeJS
前端框架
Vue
Angular
React
Web服务器
Tomcat
Jetty
Nginx
负载均衡
反向代理
HTTP服务器(包含动静分离)
正向代理
Servlet & JSP
Cookie & Session
API
数据交换类型
JSON
XML
文件流
数据交换方式
WebAPI
协议:超文本传输协议(Hypertext Transfer Protocol,HTTP)
数据:JSON为主,部分也有使用XML
WebService
协议:简单对象访问协议(Simple Object Access Protocol,SOAP)
WSDL:Web Service定义语言
UDDI:用于描述、发现、集成Web Service的技术
数据:XML
WebSocket
长连接
服务端可以主动向客户端推送数据
后端框架
Spring
Spring原理
IOC & DI
AOP
JointPoint(连接点)
@Pointcut(切入点)
expression(表达式)
execute
within
this
target
args
@within
@annotation
@target
@args
切入位置
@Before
@After
@AfterRunning
@AfterThrowing
@Around
Advice(通知)
@Aspect(切面)
Weaving(织入)
Proxy(代理)
Target(目标对象)
Bean的生命周期
Spring容器的初始化过程
代理模式
JDK动态代理(默认)
CGLib
TODO: 待补充……
SpringFramework
SpringWeb
SpringWebMVC
SpringWebFlux
SpringWebSocket
SpringData
SpringJdbc
@Transactional
propagation(事务传播模式)
isolation(事务隔离级别)
readOnly(只读事务)
timeout(事务超时时间)
rollbackFor(触发回滚的异常类型)
noRollbackFor(不触发回滚的异常类型)
SpringJPA
SpringRedis
SpringMongoDB
SpringSecurity
SpringBoot
@SpringBootApplication
@SpringBootConfiguration
@EnableAutoConfiguration
spring.factories配置文件
org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration
org.springframework.boot.autoconfigure.AutoConfigurationImportListener
org.springframework.boot.autoconfigure.AutoConfigurationImportFilter
org.springframework.boot.autoconfigure.EnableAutoConfiguration
org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider
org.springframework.boot.diagnostics.FailureAnalyzer
org.springframework.boot.diagnostics.FailureAnalysisReporter
org.springframework.boot.env.EnvironmentPostProcessor
org.springframework.boot.env.PropertySourceLoader
org.springframework.boot.SpringApplicationRunListener
org.springframework.boot.SpringBootExceptionReporter
org.springframework.context.ApplicationContextInitializer
org.springframework.context.ApplicationListener
spring-autoconfigure-metadata.properties配置文件
@ComponentScan
内置Web服务器
Tomcat
Jetty
配置提示
前提条件:IDE中必须先安装springboot插件
spring-configuration-metadata.json:配置信息描述文件
SpringBoot-2.3.9中关于该描述文件官方资料
服务监测:spring-boot-actuator
management配置项
/actuator/health:查看服务健康状况JSON
components:当前组件包含的其他组件
status:当前组件状态
code:状态枚举
UP
Down
description:状态描述
当前组件的其他属性
样例截图
info配置项
/actuator/info页面:查看info配置信息JSON
此信息都是自定义的
样例截图
参考文档
SpringBoot-2.3.9.RELEASE的PDF下载链接
SpringCloud
网关
网关的作用
权限控制
授权
黑名单与白名单拦截
负载均衡
限流
熔断
日志拦截
隐藏服务端的IP
解决跨域问题
Gateway
Zuul
Nginx
注册中心
Eureka
Eureka Server
默认端口:8761
Nacos
Nacos Server
默认端口:8848
Zookeeper
默认端口:2188
Consul
Etcd3
Sofa
TODO: 待补充……
配置中心
Nacos
Nacos Server
默认端口:8848
Apollo
Zookeeper
Consul
Etcd3
SpringCloudConfig
TODO: 待补充……
微服务调用
OpenFeign
@EnableFeignClients
@FeignClient
Alibaba Dubbo
Apache Dubbo
负载均衡
Ribbon
基于Netflix Ribbon开发
熔断器
作用
服务熔断
服务降级
Hystrix
链路跟踪
Zipkin
可视化:Zipkin
SkyWalking
服务监控
SpringBootAdmin
分布式事务
与分布式事务对应的是本地事务的特点
ACID
分布式事务的原理
CAP理论
C:一致性(Consistency)
A:可用性(Availability)
P:分区容错性(Partition tolerance)
P是必须的,所以CAP中,只对C和A进行选择
BASE理论
BA:基本可用(Basically Available)
S:软状态(Soft State)
E:最终一致性(Eventually Consistent)
分布式事务实现方案
2PC
3PC
消息补偿
分布式事务存在的问题
悬挂
空回滚
幂等
分布式事务框架
阿里开源-seata
阿里云-GTS
蚂蚁金服-DTX
TX-LCN
已经停更,官网域名也已过期,不建议使用
SpringCloudAlibaba
Nacos
注册中心
配置中心
Sentinel
控制台
实时监测
机器发现
规则配置
功能
限流控制
集群限流
调用关系限流
热点限流
异常熔断
线程数隔离
慢调用降级
调用链路
速率控制
系统自适应保护
削峰填谷
来源访问控制
动态规则配置
分布式事务
阿里开源项目:seata
全局事务
@GlobalTransactional
propagation(事务传播模式)
每个接口都需要考虑在一个全局事务中,当前接口该怎样传播事务。
默认值:REQUIRED
timeoutMills(全局事务超时时间)
超时后还是begin状态时,TC会将其标记为超时回滚状态进行异步全局回滚操作
默认值:30秒
原名:Fescar
模式
AT模式
满足了CAP中的CP
强一致性
数据源代理
SQL解析
undo_log
前镜像
后镜像
镜像数据压缩功能(seata1.5即将发布的新特性)
分布式锁
@GlobalLock
支持可重入锁
支持防悬挂和幂等:由本地undo_log表支持控制
XA模式
满足了CAP中的CP
强一致性
基于数据库的XA协议的实现
数据源代理
不支持可重入锁
TCC模式
满足了CAP中的CP
应用场景:可预约资源场景
对数据进行加减的场景
金融
库存
最新版本(1.4.1)中,暂不支持防悬挂和幂等控制,功能开发中
对应的PR #3545
理解
Try阶段
一阶段
Confirm阶段
二阶段
Cancel阶段
二阶段
异步提交功能
王良开发的PR,目前还未合并
SAGA模式
基于BASE理论
柔性事务
保证最终一致性
满足了CAP中的AP
服务编排
statelang(状态描述语言)
直接对服务进行编排的语言
基于设计器的服务编排语言
除了服务编排信息外,还包含了各节点的坐标信息等。满足设计器可视化展示。
在线编排设计器
状态机(State Machine)
状态机引擎(State Machine Engine)
状态(State)
正向服务(Service)
异常处理
逆向补偿(Compensate)
正向重试(Forward)
部分情况下无法进行逆向补偿,将会通过正向重试的方式保证最终一致性
角色
TM(事务发起者/管理者:TransactionManager)
开始时,向TC发起begin请求,开始一个全局事务,获取xid
成功时,向TC发起全局提交请求
异常时,向TC发起全局回滚请求
RM(事务资源管理者:ResourceManager)
AbstractResourceManager
AT:DataSourceManager
TCC:TCCResourceManager
XA:ResourceManagerXA
SAGA:SagaResourceManager
TC(事务协调者:TransactionCoordinator)
服务端:seata-server
RPC
RPC框架:Netty
序列化方式(SerializerType)
seata自研
protobuf
kryo
fst
hessian
压缩方式(CompressorType)
none
gzip
zip
sevenz
bzip2
lz4
deflater
协调器:DefaultCoordinator
5个异步定时任务
AsyncCommitting(异步提交)
处理状态
AsyncCommitting
8
作用
全局事务存在可异步提交的线程时,交由此定时任务处理。
RetryCommitting(重试提交)
处理状态
CommitRetrying
3
Committing
2
作用
子主题
RetryRollbacking(重试回滚)
处理状态
Rollbacking
4
RollbackRetrying
5
TimeoutRollbacking
6
TimeoutRollbackRetrying
7
TxTimeoutCheck(超时检测)
处理状态
Begin
1
作用
全局事务超时时,由Begin状态变更为TimeRollbacking状态。
并交由RetryRollbacking定时任务处理
并交由RetryRollbacking定时任务处理
UndoLogDelete
AT模式专用,异步向RM发起删除N天前的undo_log数据
核心代码:DefaultCore
子主题
seata中使用注册中心
支持类型(RegistryType)
File:不使用注册中心,在文件中配置seata-server地址
ZK:Zookeeper
Redis
Nacos
Eureka
Consul
Etcd3
Sofa
Custom:自定义实现
seata中使用配置中心
支持类型(ConfigType)
File:不使用配置中心,在文件中配置
ZK:Zookeeper
Nacos
Apollo
Consul
Etcd3
SpringCloudConfig
Custom:自定义实现
持久层框架(ORM框架)
ORM框架
MyBatis
MyBatis 3 官网指南
缓存
一级缓存
二级缓存
Mapper
插件
MyBatis-Plus
MyBatis-Plus官网指南
接口和基类
BaseMapper<T>
IService<T>
ServiceImpl<T>
插件
分页查询插件
SQL性能监测插件
TODO: 待补充……
JPA
数据库版本管理框架
Flyway
RPC框架
Netty/NIO
gRPC
Thrift
日志框架
logback
log4j
SLF4J(Simple logging Facade for Java)
任务调度框架
XXL-JOB
Elastic-Job
Staturn
Quartz
uncode-schedule
LTS
TBSchedule
Opencron
Antares
sia-task
缓存
常用缓存框架
Redis
EhCache
TODO: 待补充……
问题及解决方案
缓存穿透
缓存击穿
缓存雪崩
中间件
缓存
Redis
内存数据库
模块
网络请求模块
单线程
多路复用
索引模块
数据存储模块
单线程
高可用集群支撑模块
数据操作模块
TODO: 待补充……
MongoDB
EhCache
MemCache
TODO: 待补充……
消息队列
RabbitMQ
Publisher
Exchange
Queue
RoutingKey
Consumer
Confirm
TODO: 待补充……
Kafka
RocketMQ
ActiveMQ
搜索引擎
Solr
ElasticSearch
Lucene
分布式锁
应具备的条件
一个方法或一条数据只能被一个机器的一个线程执行
一个方法或一条数据只能被一个机器的一个线程执行
高可用的获取锁与释放锁
高性能的获取锁与释放锁
具备可重入特性
具备锁失效机制,防止死锁
具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败
常用实现方案
Redis
Zookeeper
分布式事务
阿里巴巴的开源项目:seata
阿里云收费项目:GTS
蚂蚁金服:DTX
TX-LCN
分布式日志
ELK
E:ElasticSearch
L:LogStash、Beats
K:Kibana
分布式文件系统
FastDFS
分布式架构
微服务架构
概念
Provider
服务提供者
Consumer
服务消费者
ServiceMesh(服务网格)
与分布式架构的区别
从概念角度理解
分布式架构:强调的是服务化以及服务的分散化
微服务架构:强调的是服务的专业化和精细分工
从实践角度理解
微服务架构通常是分布式架构的,反之则未必成立。
所以,选择微服务通常意味着需要解决分布式架构的各种难题。
所以,选择微服务通常意味着需要解决分布式架构的各种难题。
微服务框架
SpringCloud
Dubbo
Docker(容器化部署)
K8s(服务治理)
Istio(大型微服务系统管理工具)
微服务连接
安全保障
管理
监控方式
分布式架构产生的问题及解决方案
分布式事务难题
分布式事务框架
服务雪崩
服务降级、熔断
Hystrix
调用链路变长,问题难以排查
链路跟踪
Zipkin
SkyWalking
分布式日志
ELK
服务太多,验证以监测
SpringBootAdmin
0 条评论
下一页