学习笔记123
企业主流架构 SpringBoot机制 公司自研框架 完整学习笔记一、互联网/企业通用标准架构90%公司通用前后端分离标准生产架构链路用户浏览器访问域名 → Nginx静态资源页面/图片/js/css→ Nginx直接返回性能高、不占Java资源/api 业务接口请求 → Nginx反向代理转发至 Spring Boot 后端服务Spring Boot 内部通过中间件完成整套业务MySQL持久化业务数据Redis缓存、热点数据、临时状态Etcd配置中心、分布式锁、主备协调Kafka消息总线、异步解耦、数据流处理架构分工总结Nginx只管流量、静态资源、反向代理、负载均衡不处理业务Spring Boot只管业务逻辑、接口、异步任务、定时任务中间件各司其职解决存储、锁、消息、配置问题二、Spring Boot 核心机制——线程池机制Spring Boot原生自带完整线程池体系无需手动造轮子分为三类1. Tomcat Web线程池处理HTTP请求所有浏览器/前端发来的接口请求全部由 Tomcat 内置线程池并发处理。作用支撑接口高并发主线程不阻塞。2. 业务异步线程池AsyncSpring 内置 TaskExecutor用于异步处理 Kafka 消息异步操作数据库、Etcd解耦主流程提升吞吐量生产环境必须自定义线程池限制最大线程、队列、拒绝策略防止OOM。3. 定时任务线程池Scheduled处理定时对账、定时拉取行情、定时清理、定时同步配置。默认单线程多任务会阻塞企业环境需配置线程池大小。三、量化项目 自研框架架构重点公司旧车机框架不是SpringBoot是自研插件式事件循环架构核心技术栈自研事件循环框架 Kafka消息总线 Etcd主备锁协调2. 程序启动生命周期核心主线程模型整套框架是单主线程事件循环模型和SpringBoot多线程模型完全不同main() │ ├─ gfqg_init() // 全局框架初始化 │ 配置加载、日志、Kafka初始化、ETCD锁、定时器初始化 │ ├─ gfqg_register_busilogic() // 注册业务插件 │ 如mock_lm 插件实现 gfbusi 标准接口 │ ├─ gfqg_main_loop() // 核心事件循环死循环 │ 处理订阅Kafka消息、定时器事件、idle空闲轮询 │ └─ gfqg_clean() // 程序退出资源释放3. 自研框架核心特点和SpringBoot区别SpringBoot多线程模型、Tomcat线程池、接口驱动、自动装配公司自研框架单主线程事件循环、插件化、消息驱动、主备高可用4. 核心能力依赖Kafka全局消息总线模块之间不直接调用全部走消息解耦Etcd分布式锁、主备切换、保证集群只有一台主机干活自研事件循环统一调度所有定时、消息、插件事件