前分布式 - 单体系统 - SOA
微服务 - 容器分布式 - 无服务器/EDA 编程
单体服务特点,微服务特点
服务分拆方法
思考
若干种交互方式架构方法
应用主流架构设计
安装软件,高生产力和富客户端
PC端浏览器,支持HTML/CSS/Javascript
移动端,嵌入使用H5浏览器
即时通信App,认证信息,发送消息,提供小程序能力
HTML5/CSS3/Js处理引擎
HTTP协议,交互信息。支持HTTP2/3
Servlet规范,Web服务器,Tomcat
Spring WebMVC开发,模板支持,JSP等
WebService,Rest/JaxRS
Json,符合资源定义方式
操作系统进程,
调度/中断
容器进程
线程
并发模型,单个或者多个实例(scope,注入)
虚拟线程
方便多任务开发
操作系统内存管理
数据结构和算法
面向对象
高级语言设计的基础
设计模式
23个
Java语言基础,动态特点
JDK,工具,JVM核心
线程和并发,函数式
JDK版本演进和新特性
常见通用库
Ioc对象注入框架,AOP
Spring核心
Beans, Context, Web, WebMVC, Data
CDI规范
参考实现 Weld
操作系统IO
文件系统,
网络Socket
Java NIO
经典BIO
NIO
Netty
SQL语言
关系数据库,数据表建模
JDBC,SpringJDBC, Mybatis
ORM编程模型
JPA,Hibernate
Spring Data
BeanValidation
数据可靠和完整性
本地事务
全局事务/分布式事务
浏览器显示 Dom/JQuery/Bootstrap
SPA应用,三大Js框架
Angular,React,VUE
经典Web展示
MVC,Struts
JSF,GWT
Awt, Swing
Javafx
ReactNative, Flutter
Electron
Qt
同步(跨进程/机器,需考虑不同的接口粒度)
异步响应式(一致的编程接口,对开发者要求更高)
RPC远程调用:
Corba / RMI / SOAP / Thrift / Dubbo / gRPC(具备stream,单双向能力)
序列化,二进制格式,schema定义
接口定义: idl / wsdl
Websocket
浏览器获取数据, SSE
Graphql
获取结构内容
OData
EJB对象模型
Stateless Session Bean, Stateful Session Bean, Messaging Driven Bean
SOA
SOAP
XML语义和格式
响应式访问,异步接口
响应式Web框架
Spring WebFlux
Reactor,RxJava,Mutiny
Vertx
NodeJS
微服务
12要素
SpringBoot
配置,starter
Microprofile
Config, FaultTolerance, Health, Metrics,
Telemetry(OpenTracing), RestClient, OpenAPI
服务治理
集中配置管理
服务发现/注册服务,
服务容错和灾难恢复,流量控制
负载均衡 (网络和应用层,均衡策略)
分布式理论Paxos/Gossip
Config Server
Eureka
其他Zookeeper,Consul,Etcd等
弹性 Resilience4j / Circuit breaker
Gateway,OpenAPI
OpenFeign
发展演进过程
JavaEE/JakartaEE规范集
JaxRS, CDI, JsonP/B, JPA, Trans, BeanValidation
Servlet, JSP(Tag), EL, Websocket, Security,JMS
EJB, JaxWS, JCA, JSF, Batch, JCache
服务器产品
Wildfly/Glassfish
集群能力和域
Java模块化
OSGi
JBossModule
Spring Modulith
JMS
ActiveMQ
Spring Messaging
Kafka
Connect
Stream
其他消息服务器 RabbitMQ, Pulsar
系统缓存
浏览器,域名解析,内存缓存,CDN
应用嵌入式缓存,
JCache,缓存库
Spring Cache,Spring Session
Redis 分布式缓存
Java缓存 Hazelcast,Infinispan
数据库表迁移
Migration工具(Flyway)
Schema 注册表管理
CDC,事件数据捕获
分库分表
密码应用
密码类型
国密
安全证书,PKI体系,证书管理
加密传输 TLS
单向和双向认证
Java Security
JCA
BC 三方库
认证,授权
RBAC
OAuth2/OIDC
Spring Security
Keycloak
Linux安全相关
安全漏洞和 CVE
Web安全开发,OWASP Top10
日志log库,Slf4J
集中日志管理
ELK(Elasticsearch, Logstash, Kibana)
监控Promthes,告警系统(故障处理,配置调整)
分布式跟踪Tracing,全链路度量(关键路径、度量指标、事件)
Nginx
体系结构和配置
模块
API网关路由
Spring Gateway
K8S Gateway API
度量内容,目标、层次(基础设施,应用程序,业务层)
统计学指标,集中量、差异量、分位量、数据集
时间序列,发生时间,摄入时间,处理时间,流窗口
度量方法,聚合、分析、告警报告、行动
度量功能开发 JMX,SpringActuator, Micrometer
操作系统 OS
RHEL,Ubuntu
包管理,Shell,Systemd
开发环境 Libc
编译工具 Gcc
LSB目录环境
系统网络层 Nftable/IpTable,Proxy,防火墙
C和C++
平台 Go,Rust
应用平衡 Java,dotNET
生产力 Python
Web应用 Javascript,WebAssembly
容器环境工具
Docker
Podman
容器运行时 runc
操作系统 cgroups
开发镜像包 alpine,UBI
Kubernetes
架构和运行机制
运行实例
集群分布
发行版
Openshift
云实现GKE
OperatorSDK
OperatorHub
云原生设计
基于容器的开发
ServiceMesh
Istio
Serverless
触发器和功能函数
AWS Lamdba
Knative
GraalVM
Java Aot
Quarkus
云原生开发框架
技术架构,组件构成,Funq
SpringNative
SpringFunction
公有云服务能力
云原生架构
GAE/Heroku
公有云K8S能力,应用迁移考虑
卓越操作。运行并监控系统,体现商业价值,持续改进流程
安全性。通过风险评估,提供策略来保护信息、系统以及资产
可靠性。系统从基础设施或者服务故障当中恢复、以动态方式获取计算资源以满足需求
性能效率。高效利用计算资源以满足系统要求
成本优化。避免或者消除不必要成本或者欠佳资源的能力
可持续性。云负责提供高效的共享基础设施、水资源管理和采购可再生能源。客户负责优化工作负载和资源利用率
ESB数据集成
Camel
SpringIntegration
Batch
SpringBatch
数据集成iPaas
BPM 工作流程
Java工作流
jBPM
Activiti,Flowable
关系数据库,MySQL和PG
NoSQL数据库,访问API
文档MongoDB,图Neo4j,时序数据库InfluxDB, 列族Cassandra
对象存储
S3,Minio
分布式框架
数据批式处理 Spark
数据流式处理 Flink
数据虚拟化
数据库迁移复制
ETL(提取/变换/载入)
数据仓库
数据分析
数据可视化
商业智能BI
报表方案
数据模型,通用和行业内容
数据治理
数据目录
主数据
元数据
数据质量
数据科学
统计学
机器学习
深度学习
规则引擎 Drools
求解器 TimeFold
运筹学
管理学案例
Java搜索,Lucene库
Solr,ElasticSearch
自然语言处理 NLP
Apche OpenNLP
大语言模型开发
OpenAI
提示工程
LangChain4j
SpringAI
Maven构建
Git代码管理
工件仓库
JIRA缺陷管理
持续集成 CICD
Jenkins
Ansible等自动化配置管理
不可变基础设施
Gitops
IT服务管理指标 ITSM/ITIL
自动化测试,自动化平台
软件测试
TDD测试
压力测试
集成测试
EDA 事件驱动
DDD 开发方法论
需求管理
项目管理
敏捷开发
UML
代码度量,规模,重复率,
bug缺陷,坏味道,重构,SonarQube
应用排错和性能调优
应用分析和迁移工具
快速应用构建,低代码开发