前言

第一天主要讲的是概念,技术层面的东西较少。

JavaSE与JavaEE

javaSE : java standard edtion 标准版
JavaEE : java enterprise edtion 企业版
JavaEE是甲骨文推出的一套用于企业级开发的项目规范。


企业级项目:

  • 大型企业级项目(JavaEE 架构)-----无法满足电商的高并发、大用户
  • 中小型企业项目、电子政务 (推荐Spring架构)---只有WEB服务器集群,没有应用服务器

电商项目(特点:高并发):

  • 淘宝、京东、唯品会
  • 大电商:RPC架构
  • 中型电商:微服务架构

大型电商使用的dubbo架构,不是JavaEE架构模式,dubbo服务器无需Web Container和EJB Container


企业项目与桌面系统的本质区别?

  1. 高并发
  2. JavaEE项目需要部署到WEB服务器上,给很多人同时访问
  3. 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都无法解决高并发问题