微服务是目前的热度技术话题,对于企业和互联网软件应用的设计开发,都有良好的指导作用。
我们立足于Java语言,借鉴世界范围内优秀技术,结合自身的实践经验,总结开发出一系列的微服务课程。 目前有3组课程:
微服务全局内容:从微服务总体的角度,参考单体结构的系统,如何进行技术演进,对采用的技术进行详细说明和较深入的剖析。对于架构人员和高级开发人员在技术原型,架构设计和重构有帮助。
微服务Spring系列技术内容:目前SpringBoot和SpringCloud是Java领域最受瞩目的微服务技术框架,结合容器和编排技术,如何设计应用。对于开发人员进行具体的设计和开发会有帮助。
MicroProfile微服务相关内容:MicroProfile是JavaEE面向微服务开发定义的技术子集,利用JavaEE API良好的设计和应用服务器稳定实现,来开发微服务应用。对于原有系统的无缝迁移和沿用JavaEE技术知识和保护原有投资,有很强的借鉴意义。同时MicroProfile也在不断的发展完善中,未来可能会成为Java语言微服务方面的标准。
以上3组课程各有侧重点,也有一些内容重合的地方,基本上来说覆盖范围和重合如下图:

课程A-微服务技术全局内容
主题: 企业应用微服务化
时长: 大概需要2-3天
内容纲要:
一,经典企业应用架构
JavaEE是蕴涵了企业应用特性需求的规范集合
SpringFramework是优秀的实践落地框架
互联网,移动开发带来的设计挑战
二,微服务化的内在动力和外部助力
高并发量,分布式运算,无尽的需求和快速功能实现
架构微服务化
微服务概述
和单块应用的区别
海量用户互联网
应用设计的12要素
容器技术和服务编排技术不断成熟
Docker容器运行微服务
使用Kubernetes来管理应用容器
Nginx或者Undertow提供Web层反向代理
对于运维管理的更高要求,架构设计和开发方式也变化
Keycloak安全权限管理
Api Gateway提供服务注册和消费,版本升级管理,服务限流,安全防护等
APM应用管理,检测服务调用路径
ELK集中管理日志
服务治理的需求和实现思路
三,Java应用层技术
微服务的本质,不是体积微小,接口很小,而是领域对象聚合根的服务视图。
SpringBoot+SpringCloud技术
SpringBoot应用设计
关键点是配置项定义
通过Rest或者Websocket提供服务
各种组件通过maven组合构成
JavaEE规范技术栈的选用
配合SpringCloud,保存配置,注册服务,路由管理,断路控制等
系统自治,日志输出,安全设置等
Wildfly-swarm的追赶,microprofile定义的规范集
Wildfly-Swarm基于JBoss MSC,设计思路
架构分析
应用示例
Vertx异步响应服务框架
Vertx异步框架
基于Netty,内部Json格式
和Nodejs类似的循环执行线程,但有独立执行线程的扩展
Socket和HTTP服务
Vertx-Web处理Web应用请求
异步调用方式处理,RxJava数据处理
支持集群,多节点数据共享
模块化对微服务的设计的影响
现有的OSGi模块化
未来采用Jigsaw模块化
四,技术架构的思考
对事务需求的初步分析,尽可能的降低对一致性的需求
应用特性和面对的客户群
分布式运维能力
课程B-微服务Spring系列技术内容
主题: SpringBoot和SpringCloud构建微服务 时长: 大概2-2.5天 一. SpringBoot * 微服务设计方式适应互联网云端应用 * SpringBoot介绍 * SpringBoot设计原则,单一jar包组合方式,Initializer分析 * 构建工具一览和Maven构建 * Starter POMs * 创建可以执行的Jar * 多个层次可以选择适用的技术实现,如Tomcat/Jetty/Undertow,SpringMVC/Jersery,JPA/SpringDataRedis等等 * 创建REST API,具体实现和swagger使用 * 数据层访问,SpringData,加载数据 * 事务处理和多事务源的分布式事务考虑 * JMS和消息的配置和使用 * 自动配置的奥妙,代码分析 * Reactor,异步数据获取 * 安全部分Spring Sercurity结合使用 * Session全局管理 * 生产级功能,监控/管理/统计能力的实现 * Cli命令行管理方法 二. SpringCloud * 配置信息的灵活管理,中心配置能力 * Netflix重点开源项目讲解 * 通过Eureka注册和发现实例 * CircuitBreaker的作用和重要性,Hystrix使用 * RestClient的能力和Ribbon负载均衡调度 * 通过Zuul进行路由和拦截操作 * 集中日志处理分析说明 三. MicroService * 传统企业应用迁移到云端需要注意的问题,12条设计原则 * 微服务和JavaEE设计方案的对照分析,简化还是复杂 * 微服务对于运营能力的高要求,部署方式的改变等分析 * Docker和K8s容器和编排工具考虑 * 企业应用服务化迁移的案例和思考
课程C-Microprofile微服务技术和Wildfly-swarm实现
课程题目:
MicroProfile技术精解--JavaEE面向微服务的规范子集
时长:
大概2天
课程介绍:
MicroProfile是Java技术社区新定义的JavaEE规范子集,目前1.0包括JaxRS, CDI, JsonP三个规范。
在当前云计算,微服务的技术演进大背景下,企业应用设计开发也需要进行架构变革和技术适应。JavaEE技术作为企业应用优秀的技术全集,对于需要快速迭代的互联网软件开发,有些过于庞大了。把30多个规范其中一部分提取出来,构成一个干练的子集,用来构建微服务应用,正是Micro Profile的设计原则。
课程目标:
讲述MicroProfile中的各个规范技术特点。JaxRS规范和实现如何处理REST访问请求,CDI规范的技术内容,具体设计原则等。
以及利用wildfly-swarm进行微服务实战演练,wildfly-swarm基于Wildfly(JBossAS)应用服务器,紧凑的内核设计和可扩展的子系统,可以方便的进行微服务系统的剪裁。
通过对这个课程的学习,学员可以了解如何利用JavaEE标准技术构建微服务,以及进行微服务实践和掌握wildfly-swarm架构原理。并且对单体系统向微服务系统迁移的也有参考意义。
授课对象:
中高级Java程序员,架构师。对JavaEE有关规范有一定了解的开发者。
内容大纲:
一,MicroProfile规范集合
1. 形成背景,符合微服务设计
2. 主要的支持社区和开源实现
二,JaxRS规范
1. REST接口,基于HTTP的语义级别无状态协议,面向资源定义,考虑幂等性
2. 资源地址和Annotation注解
2. 传递格式,格式文本json/xml,通用解析工具,DOM/SAX/Stax解析方式对比
3. 响应处理,返回值和异常
4. 过滤器和实现
5. REST客户端API
6. 异步接口说明
7. 异步通信和推送
三,CDI
1. IOC注入解析和DI规范
2. CDI是DI针对企业应用开发的扩展,揭示对象间关系本质的规范
3. Scope/LifeCycle
4. Stereotypes
5. Decorator
6. Event
7. Portable extensions
8. CDI和EJB,CDI和SpringFramework的区别和相关分析
四,相关规范
1. JsonP处理Json格式数据
2. XML格式处理
3. JPA对象持久化到关系数据库中
五,Wildfly-swarm实现微服务
1. wildlfy-core为基础组件
2. 子系统扩展机制
3. Fraction组成机制
4. 配置文件读取方式
5. JaxRS和CDI规范实现Resteasy和Weld
6. 代码实践
联系方式: training@useopen.net




