客服系统案例分析和应用工程搭建
教学目标
- 理解实战项目的业务背景、需求和核心流程
- 理解系统开发的基本原则、策略和规范
- 掌握 Java 项目开发所需的基础性框架和工具的应用方式和基本原理
学习和工作中的痛点
- 缺少项目需求分析和系统设计的思路和方法论
- 缺乏对主流基础性开发框架原理的理解和掌握,做不到知其然而知其所以然
通过学习掌握的核心能力
- 框架应用:使用 Spring Boot、Mybatis 等基础性开发框架实现Web应用
- 原理理解:理解 Spring 模板工具类、Spring 框架扩展、数据访问集成等机制的底层实现原理
- 项目实战:掌握从业务案例出发设计系统基础架构的能力,并将各种框架应用到具体的案例实现中
详细内容
- 项目分析:客服系统项目案例整体业务场景和核心流程分析
- 架构设计:完成系统架构的 1.0 初始版本
- 基础框架:使用 Spring Boot 构建Web应用,涉及 Maven、Spring Boot 配置体系、Spring AOP、Spring WebMVC 等组件的具体应用
- 数据访问:使用 JDBC 和 ORM 实现数据持久化,涉及 JDBC 规范、Spring JDBC、SimpleJdbcInsert、Mybatis 、动态 SQL 等技术的具体应用
- 性能优化:Spring Web 性能优化实践,涉及 Spring 中代理机制的性能分析、Spring Boot 内置容器参数优化、Spring Async 并发编程技术的应用
- 原理剖析:JdbcTemplate 模板工具类的抽象和原理,涉及模板方法设计模式和回调机制、JDBC API 封装方式的源码解析
- 原理剖析:Mybatis-Spring SQL 执行流程和扩展机制,涉及 Spring 扩展点机制、动态代理、Mapper、Plugin 等组件的分析
系统扩展、测试和监控
教学目标
- 掌握 Web 服务和数据访问层多种实现方式和开发工具
- 应用对 Java 项目进行系统测试的方法和工具
- 掌握应用程序监控和性能管理的工程实践
学习和工作中的痛点
- 缺少在不同场景下灵活采用合适开发技术的分析能力,而只局限于基础性的开发技术体系
- 缺乏 Web 应用程序开展多维度测试的方法,无法有效保证自己写的代码是否能够运行正常
- 缺乏对系统的运行时状态进行有效把控,无法及时发现问题并解决问题
通过学习掌握的核心能力
- 框架应用:掌握多种 Web 服务和数据访问开发技术,从而应对不同的开发场景
- 测试集成:使用完整的测试解决方案完成对数据访问、Web 服务等多层技术组件的系统化测试
- 系统监控:使用 Spring Boot 内置的监控机制完成对系统运行时状态进行有效的监控和管理
- 性能优化:针对 Web 服务、数据访问等场景提供性能提升的开发组件,并定制化性能度量指标体系
详细内容
- Web 扩展:打造 Web 服务交互多样性,涉及 Spring HATEOAS、Spring GraphQL 等框架的应用
- 数据扩展:实现 Repository 模式和扩展组件简化数据访问,涉及 Spring Data 系列组件、Mybatis-Plus 和 Wrapper 机制的应用
- 测试验证:使用 Spring Test 实现系统测试,涉及单元测试和集成测试、JUnit、Spring Test 测试注解、数据访问层测试、业务逻辑层测试、Web 服务层测试的实施策略
- 运行监控:使用 Spring Boot Admin 监控服务运行,涉及 Spring Boot Actuator、扩展Actuator 端点、自定义 Actuator 端点、Spring Boot Admin 组件的应用
- 原理剖析:Mybatis-Plus 执行流程解析,涉及与 Mybatis 之间的集成过程、Wrapper 机制的执行流程分析
- 性能优化:使用响应式编程技术提升 Web 访问性能,涉及 Spring WebFlux、背压机制和 Reactive Streams 规范、Project Reactor 框架的介绍
- 性能优化:ORM 框架性能优化实践,涉及对优化配置、批处理机制、多级缓存、N+1 性能问题的分析
- 性能优化:系统性能监控的原理和定制化方案,涉及 PerformanceMonitorInterceptor、Micrometer 库、定制化性能度量指标的实现
租户机制和服务集成
教学目标
- 理解租户机制和系统扩展性的设计方法和实现策略
- 实现 Web 服务与服务之间的远程调用
学习和工作中的痛点
- 缺少对服务集成领域相关技术体系的了解,无法应对复杂系统交互的实现需求
- 缺乏对远程调用实现过程的充分理解,无法基于特定场景做相应的扩展实现
通过学习掌握的核心能力
- 架构升级:掌握租户机制、服务集成等常见的架构设计方法和实践能力
- 技术应用:使用定时任务、远程调用等技术体系满足总线机制的实现
- 系统扩展:综合使用管道-过滤器、工厂等多种架构模式实现高扩展性的业务系统
详细内容
- 架构演进:项目迭代之构建服务集成机制
- 租户机制:基于 SaaS 化多租户机制构建集成服务,涉及异构系统、租户机制、数据隔离等策略的实现
- 远程调用:基于 REST API 实现跨服务 HTTP 请求和响应,涉及 RestTemplate、WebClient 等框架的应用
- 定时任务:基于 Job 实现数据同步机制,涉及 Spring TaskScheduler、xxl-job 等框架的应用
- 系统扩展:基于自定义系统集成组件重构集成服务,涉及管道-过滤器链、自定义路由器和转换器的实现
- 原理剖析:RestTemplate 远程调用底层运行机制解析,涉及职责分离原则、MessageConverter、远程调用扩展的应用和实现
- 原理剖析:定时 Job 执行机制解析,涉及线程池、ExecutorService、JobExecutor,JobHandler 等组件的原理分析
分布式服务
教学目标
- 理解主流分布式服务的设计原理和实现过程
- 掌握分布式服务框架框架 Dubbo 的功能特性和应用方式
学习和工作中的痛点
- 缺少对分布式服务技术体系的足够认知,无法应对复杂服务化的应用场景
- 缺乏对分布式服务底层实现原理的理解,无法对服务调用过程中的异常情况进行有效处理
通过学习掌握的核心能力
- 架构升级:掌握分布式服务架构设计方法和实践能力
- 技术应用:使用注册中心、服务发布和消费、服务容错等技术体系满足项目服务化开发需求
- 原理理解:掌握 RPC 架构的组成结构和实现原理
详细内容
- 架构演进:完成系统架构设计的 2.0 版本,为项目集成分布式服务架构
- 服务发布:使用 Dubbo 发布分布式服务,涉及注册中心、上下文控制、隐式参数传递、服务多版本发布等机制的应用
- 服务引用:使用 Dubbo 消费分布式服务,涉及服务路由、负载均衡、异步调用、泛化调用、过滤器等机制的应用
- 服务可用:实现分布式服务的容错和降级,涉及集群和容错、降级和 Mock 机制的应用
- 远程调用:构建独立的集成服务,涉及对远程交互方式的改造,并实现对分布式服务的测试
- 原理剖析:ZooKeeper 服务发布和订阅机制解析,涉及 ZNode 和会话、订阅操作、Watcher 等底层实现机制的分析
- 原理剖析:Dubbo 服务端与客户端通信原理解析,涉及通信分层架构、Exchange、Transport、Serialize 等核心技术组件的源码解析
分布式通信
教学目标
- 理解主流分布式通信框架的工作机制和开发流程
- 掌握 IM 系统的设计方法和实现原理
学习和工作中的痛点
- 缺少对分布式通信机制的足够认知,无法在通信过程中添加定制化的业务逻辑
- 缺乏对分布式通信底层实现原理的理解,无法对服务调用过程进行优化
通过学习掌握的核心能力
- 架构升级:掌握分布式通信机制设计方法和实践能力
- 技术应用:使用主流分布式通信技术体系满足项目 IM 聊天功能的实现要求
- 原理理解:掌握网络通信全流程核心组件的设计方法和实现原理
详细内容
- 架构演进:项目迭代之打造 IM 通信功能
- 基础通信:使用 Netty 实现网络通信,涉及 Netty Server、Netty Client、Pipeline、ChannelHandler 、心跳与空闲检测等组件的应用
- 点对点通信:基于 Netty 实现 IM 单聊功能,涉及用户登录、点对点消息、自定义消息和编解码的实现
- 多点通信:基于 Netty 实现 IM 群聊功能,设计用户组管理、多播消息、定制化 ChannelHandler 等机制的实现
- 原理剖析:ChannelHandler 解析,涉及 ChannelHandler 处理器模型、 ChannelPipeline 管道模型、通信事件传播等机制的源码解析
- 性能优化:Netty 性能优化实践,涉及共享和压缩 Handler、缩短事件传播路径等优化机制的实现
分布式数据库、 分布式搜索、分布式消息、分布式缓存、详解微服务 6 大基础技术组件、微服务安全性、微服务数据一致性、微服务可用性、能力模型建设 ……