4006-998-758
3000+课程任你选择
JAVA高级编程和微服务架构
研发学院 开课时间:2021-07-02
刘捷

曾就职于 IBM 中国研发中心,任 WebSphere 软件架构师。

后加入 BEA 中国区专业服务部,任高级技术顾问、首席顾问、项目经理

主要负责 BEA 客户项目的架构设计和项目开发、技术支持,保证项目的成功实施、运行及维护。参加过全省、全国多个大型的计算机应用项目,涉及的行业领域包括电信、银行、 税务、社保等。 


查看老师详情
课程内容


课程简介


微服务是一种分布式系统架构解决方案,推动细粒度服务的使用,这些服务协同工作,且每个服务都有自己的生命周期。因为微服务主要围绕业务领域建模,所以避免了由传统的分层架构引发的很多问题。微服务也整合了过去十年来的新概念和技术,因此得以避开许多面向服务的架构中的陷阱。

随着 RESTful、云计算、DevOps、持续交付等概念的深入人心,微服务架构逐渐成为系统架构的一个代名词。那么微服务是否是业界期待已久的企业架构解决方案呢?在微服务架构的实施过程中存在着怎样的困难和挑战呢?在过去几年的时间里,我们一直在探索和实践,将其复杂的业务支撑系统逐渐演进为基于微服务架构的系统。这期间也经历了从微服务的理论认识,到小范围实践、迭代,再到多个基于微服务构建的项目已经成功上线的过程。在感受微服务为开发实践、测试策略、部署、运维等带来改变的同时,也切身体会到使用微服务架构,对系统灵活性、可伸缩性方面的提升,以及对团队应对变化能力的提升。鉴于此,本课程从实践的角度出发,首先阐述了单块架构存在的弊端以及微服务的理论基础。接着通过实践部分,让读者能够体验从零开始搭建第一个微服务的过程,包括代码静态检查、基础设施构建、 Docker映像构建及部署、持续交付流水线、服务的日志聚合以及监控和告警。随后,探讨在微服务的实践过程中所积累的经验,包括基于 HAL的通信机制、消费者驱动的测试,并通过一个真实的案例,帮助读者更好地理解微服务架构所带来的灵活性、易扩展性和独立性。

微服务是一个快速发展的主题。尽管它不是一个新的想法(虽然这个词本身是),但世界各地的人们所获取的经验以及新技术的出现正在对如何使用它产生深远的影响。因为其变化的节奏很快,所以本课程更加关注理念,而不是特定技术,因为实现细节变化的速度总是比它们背后的理念要快得多。而且,我完全相信几年后我们会对微服务适用的场景了解更多,也会知道如何更好地使用它。

随着移动互联时代的到来,数据量急剧增加,并发量也变得越来越有挑战, 企业在规划和设计分布式系统的总体架构,涉及到方方面面的知识点,可选的方案也很多,如何在各种各样,纷繁复杂的技术中构建最适合企业的分布式系统架构(Distributed Architecture),变成了一件极具挑战的事情。

一个好的分布式架构可以以最低的成本、更灵活的方式,满足企业用户需求。相反,糟糕的架构,不但花费了重金,而且架构过于复杂、过于笨重,线上故障不断,架构灵活性差,阻碍业务的发展。传统的 Monoliths 等架构已无法满足业务持续快速创新的需求, 分布式系统架构(Distributed Architecture)应运而生。相信大家对分布式系统架构都有一定的认识,但对分布式系统架构如何在项目中落地实践,缺乏一些经验。

该课程适应于各类技术人员.细粒度的微服务架构包含了很多方面的内容,所以本课程涉及范围很广,适用于对系统的设计、开发、部署、测试和运维感兴趣的人们。对于那些已经走上更细粒度架构之路的人,无论是开发新应用,还是拆分现有的单块系统,都会因课程里很多的实用建议而受益。对于想要了解微服务方方面面的人,也可以帮助你确定微服务是否适合你。


课程大纲

 


主题

培训内容

备注

第一部分  java 高级编程

第1  Java语言和面向对象

 

 

 

内容一:面向对象基本原则

1. 面向对象基本原则概述

2. SRP:单一职责原则

3. OCP:开放-封闭原则

4. LSP:Liskov替换原则

5. DIP:依赖倒置原则

6. ISP:接口隔离原则

内容二:Java面向对象技术

1、 定义继承、多态、重载、虚拟方法调用

2、 使用访问修饰符protected和default (包内友好)

3、 描述构造函数和方法重载的概念

4、 描述完整对象创建和初始化工作

5、 创建静态变量、方法和初始化

6、 创建final类、方法和变量

7、 创建并使用枚举类型

8、 使用静态导入语句

9、 创建抽象类和方法

10、 创建并使用接口

内容三:java接口与内部类

1、 java接口

2、 接口的特性

3、 接口与抽象类

4、 接口与回调

5、 内部类

6、 匿名内部类

7、 静态内部类

8、 代理

内容四:面向对象核心设计模式

A、 创建型模式

i. Singleton模式

ii. Builder模式

iii. Simple Factory模式

iv. Factory Method模式

B、 行为型模式

i. Template Method

ii. Strategy

iii. State

iv. Observer

v. Chain of Responsibility

vi. Command

vii. Iterator

C、 结构型模式

i. Adapter

ii. Bridge

iii. Facade

iv. Composite

v. Decorator

vi. Proxy


第2 Java函数式编程

 

内容一:Java函数式编程

1. 什么是函数式编程

2. Lambda 表达式

3. 第一个Lambda 表达式  

4. 如何辨别Lambda 表达式

5. 流

6. 将现有代码库和库代码Lambda化

7. 学习Lambda表达式单元测试和调试的实践解决方案

8. 用Lambda表达式实现面向对象编程的SOLID原则

9. 编写能有效执行消息传送和非阻塞I/O的并发应用

10. 设计和架构的原则

11. Lambda 表达式改变了设计模式

12. 使用Lambda 表达式的领域专用语言

13. 使用Lambda 表达式的SOLID 原则

14. 使用Lambda 表达式编写并发程序


第二部分  java 高级编程

第1单元  微服务架构概述

内容一:微服务架构诞生—为什么出现微服务架构

1. 单块架构及其面临的挑战

2. 分层应用架构

3. 单块架构特点

4. 单块架构面临的挑战

5. 通过某传统ERP系统为案例分析上线后问题

内容二:微服务架构

1. 为什么需要微服务架构

2. 如何解决传统应用架构的问题

3. 微服务架构是什么

4. 微服务架构概念

5. 微服务架构参考架构模式

6. 通过分析多个微服务架构案例,了解微服务架构的参考模式


第2单元-微服务架构—服务分解和建模

内容一:微服务分解和服务颗粒度

1. 微服务架构构成(服务拆分、服务拓扑关系图);

2. 微服务架构设计原则;

3. 微服务架构服务粒度设计;

4. 微服务架构之我们的实践案例;

5. 通过大量项目案例分析,什么是好的服务,服务的分解和服务颗粒度

内容二:微服务建模

1. 如何建模服务

2. 什么样的服务是好服务

3. 微服务的松耦合和高内聚

4. 微服务限界上下文

5. 微服务的业务功能

6. 逐步划分服务上下文

7. 微服务与业务概念

8. 微服务技术边界

9. 通过案例分析微服务建模


第3单元-微服务架构设计开发实现—基于SpringBoot和SpringCloud

 

动手实现一个完整的微服务

内容一:微服务架构开发实现---SpringBoot

1. Spring Boot概述

2. 运用Spring Boot

3. Groovy与Spring Boot CLI

4. 在Spring Boot中使用Grails

5. 深入Actuator

6. 部署Spring Boot应用程序

7. Spring Boot 的数据访问

8. Spring Boot 企业级开发

9. Spring Boot 开发部署与测试

10. 多个基于SpringBoot实际项目的架构分析(为何这样设计/优点/缺点/当初的考虑)

内容二:微服务架构与云架构--Spring Cloud平台

1. 云计算平台架构

2. 为什么选择Spring Cloud

3. Spring Cloud

4. 服务治理:Spring Cloud Eureka

5. 客户端负载均衡:Spring Cloud Ribbon

6. 服务容错保护:Spring Cloud Hystrix

7. 声明式服务调用:Spring Cloud Feign

8. 分布式配置中心:Spring Cloud Config

9. 消息总线:Spring Cloud Bus

10. 多个基于SpringBoot和SpringCloud云架构,谈微服务和云架构


第4单元--微服务注册与发现,服务路由,统一配置中心

内容一:微服务注册与发现

1. 为什么要服务注册

2. 服务注册实现方式

3. 使用NetflixEureka/SpringCloud实现服务注册

4. 使用NetflixRibbon/SpringCloud实现客户端负载均衡

5. 为什么要服务发现

6. 服务发现的实现方式

7. 使用Spring和Netflix Eureka进行服务发现实战

内容二:微服务负载均衡和路由,容错

1. 负载均衡

2. 容错

3. 服务路由

4. 微服务间的异步通信机制

5. Spring Clould 的Ribbon实现

内容三:分布式微服务统一配置中心

1. 管理配置(和复杂性)

2. 配置管理架构

3. 构建Spring Cloud配置服务器

4. 将Spring Cloud Config与Spring Boot客户端集成

5. 分布式配置中心——携程Apollo

6. 携程apollo优点

7. apollo架构

8. Apollo分布式配置中心部署

9. Apollo分布式配置中心最佳实践


第5单元--微服务网关和过载保护

内容一:微服务网关—Zuul

1. 使用Spring Cloud和Zuul进行服务路由

2. 什么是服务网关

3. Spring Cloud和Netflix Zuul简介

4. 在Zuul中配置路由

5. 动态重新加载路由配置

6. 构建第 一个生成关联ID的Zuul前置过滤器

7. 构建动态路由过滤器 

8. Zuul网关最佳实践

内容二:微服务断路器—Hystrix

1. 什么是客户端弹性模式 

2. 客户端负载均衡模式 

3. 断路器模式 

4. 后备模式 

5. 舱壁模式 

6. 使用Hystrix实现断路器 

7. 对组织微服务的调用超时

8. 定制断路器的超时时间

9. 线程上下文和Hystrix 

10. Hystrix最佳实践


第6单元  微服务分布式事务和日志监控

内容一:微服务分布式事务

1. 本地事务-JDBC实现

2. XA和两阶段事务协议

3. J2EE分布式事务

4. Spring框架与分布式事务

5. CAP原则和BASE原则

6. 微服务事务一致性实现策略

7. TCC与分布式微服务架构事务

8. 分布式微服务架构最佳实践

内容二:大型微服务分布式日志

1. 大数据日志系统的构建

2. 开源日志框架的原理分析与应用实践

3. ELK系统的构建与使用

4. Elasticsearch

5. Logstash

6. Kibana

7. 大数据日志系统的原理与设计

8. 日志系统的容量和性能评估

内容三:微服务分布式跟踪系统—大众点评CAT

1. 基于调用链的服务治理系统的设计与实现

2. 调用链跟踪的原理

3.  分布式系统的远程调用过程

4. Google Dapper实现

5. 大众点评CAT案例分析

6. CAT实现原理

7. CAT部署策略

8. CAT最佳实践


第7单元  大型微服务分布式架构设计最佳实践

内容一:大型分布式架构核心概念

1. 典型大规模互联网系统架构

2. 可用性的概念以及设计准则

3. 扩展性的概念以及设计准则

4. 负载均衡的概念以及设计准?

5. 一致性的概念以及设计准则

6. 通过大量案例分析以上原则

内容二:降级设计与实践

1. 服务限流降级概念;

2. 服务限流降级使用业务场景;

3. 服务限流降级设计环节;

4. 服务限流降级之原则篇、架构篇、框架篇、业务篇;

5. 移动时代服务限流降级如何打造;

6. 我们的实践案例;

内容三:高可用性设计

1. 可用性一般度量

2. 可用性实践

3. 平均故障间隔时间(MTBF)

4. 平均修复时间

5. 错误和缺陷率

6. 高可用性原则 1: Remember Everything Fails

7. 高可用性原则 2: Automate Everything

8. 可用性最佳实践-1-错误检测

9. 可用性最佳实践-2-错误隔离/恢复/降级或掩盖

10. 可用性最佳实践-3-错误预防

11. 机器故障自动修复

12. 资源故障自动迁移

13. 服务故障容灾降级

14. 业务容量自动调整

15. 架构设计预防;


 


返回上一级