前言
第一天主要讲的是概念,技术层面的东西较少。
JavaSE与JavaEE
javaSE : java standard edtion 标准版
JavaEE : java enterprise edtion 企业版
JavaEE是甲骨文推出的一套用于企业级开发的项目规范。
企业级项目:
- 大型企业级项目(JavaEE 架构)-----无法满足电商的高并发、大用户
- 中小型企业项目、电子政务 (推荐Spring架构)---只有WEB服务器集群,没有应用服务器
电商项目(特点:高并发):
- 淘宝、京东、唯品会
- 大电商:RPC架构
- 中型电商:微服务架构
大型电商使用的dubbo架构,不是JavaEE架构模式,dubbo服务器无需Web Container和EJB Container
企业项目与桌面系统的本质区别?
- 高并发
- JavaEE项目需要部署到WEB服务器上,给很多人同时访问
- JDK最核心的内容就是多线程
* 客户端多线程(AJAX)
- WEB服务器线程池
- WEB服务器异步
- NIO
JavaEE架构
JavaEE架构的核心: Container + Component (组件 + 容器 )
容器开发:
- Web Container : Tomcat , glassFish
- EJB Container: jboss , weblogic ,webSphere
数据库:
- 关系型数据库 (在线交易 OLTP : online transaction process)
如: mysql , oracle ,sql-server - 非关系型数据库 (OLAP : online analyse process)
如:redis , mongodb , hbase (hadoop)
交易与事务
Java语言平台,最核心要解决的是: 交易问题
推荐的学习路线图:
本地事务管理-->>全局事务:XA事务 -->>声明性事务(Spring)-->> 分布式事务(MQ)
EJB
enterprise java bean
entity bean : 实体bean
session bean : 会话bean -->> 要解决的问题:全局事务: XA事务
Message bean : 消息bean
Java bean : 甲骨文没有明确定义
一个普通的java 类 (业务类)
事务特性:ACID
A: atomic 原子性
C: consistance , 一致性
I : isolate , 隔离性
D: durable 持久性
事务管理什么?
资源管理器、事务管理器
事务管理的是资源的写操作
最常见的资源有两种:
(1)关系型数据库(磁盘文件)
(2)消息中间件(MQ, active MQ , Kafka , rabbit mq )
JavaEE8的架构图,核心要解决的是事务问题:
WEB服务器(集群) + 应用服务器(集群)
Web服务器: 视图页面 + 控制器(servlet )
应用服务器: 业务逻辑处理(XA事务管理,会话bean)
业务实体(entity bean) , MQ (消息bean)
JavaEE是一套分布式架构模式,浏览器访问Web服务器(通过HTTP协议),Web服务器把请求处理转交给业务逻辑对象,即WEB服务器访问应用服务器(通过RMI-IIOP协议)
RPC:remote prcedure call ,远程过程调用
RPC如何解决异构平台交互的问题,如c#客户端访问JavaEE服务器
Web Service : 用途广泛的一个RPC技术,可以解决异构问题
EJB无法解决异构问题,只能在局域网、在java平台使用
Web Service与EJB都无法解决高并发问题