J2EE架构复习

本文介绍J2EE架构的不同开发方式与架构模式,包括前后端分离、微服务开发等,并探讨了Spring Boot在微服务开发中的应用,以及Shiro、HttpClient、WebService等技术在实际项目中的使用。

J2EE架构

1.实际项目中项目存在的形式:

1.1开发方式
1.1.1后台代码和jsp代码一起部署在中间件(代码托管?)中,通过浏览器访问
1.2前后端分离,做controller,提供资源地址,把前端想要的数据封装到json中,(HTML5很方便的打包成App)
1.2架构方式
1.2.1 单一系统
1.2.2 微服务器开发(添加新功能,用分布式添加一个新系统){
    异步交互:MQ
    同步交互:RPC(cloud/dubbo)/WebService/Http
}
1.3部署方式
1.3.1 单一服务器
1.3.2 集群/负载均衡(使用到了路由转发)

SpringBoot

可以快速开发项目
遵循它的规范就可以减少不必要的配置
因为其开发简单效率高,经常用于开发微服务

shiro

1.配置URL
2.配置回调函数

HttpClient

网络爬虫
服务器调用其他浏览器数据,代替JsonP?
服务器与服务器进行通讯

webService
dubbo
noSQL(Redis)
集群
linux
单点登录

分布式(服务器之间的通讯)

1.1Tcp协议(服务器之间交流建议使用)
1.1.1 Dubbo(RPC标准)
使用socket进行传输
注册服务器Zookeeper(用来维护服务器之间的关系,类似于交换机)
(1)导包(zookeeper/dubbo/client)
(2)启动注册服务器
    zoo.cfg
    修改端口号
    观察者,内部使用树结构
(2)dubbo服务器
    类
    配置(提供信息/注册服务器地址/端口号/需要暴露的接口)
(3)客户端
    类(接口,包名类名和服务器一样)
    配置(提供信息/服务器/端口号/需要暴露的接口check=false,Spring用的Id)  
1.1.2 MQ
1.1.3 Cloud
1.2Http协议(只需要获取使用)
1.2.1 HttpClient
HttpClient httpClient = HttpClients.createDefault();
HttpGet get = new HttpGet(path);
HttpResponse response = httpClient.execute(get);
// 获得返回内容
HttpEntity entity = response.getEntity();
// 把内容转换为字符串
String str = EntityUtils.toString(entity, "UTF-8");
1.2.2 WebService SOAP(简单的对象访问协议)
使用tcp xml传输
RPC远程调用过程,使用XML传输跨平台,会有安全问题
所以创建了SOAP
(1)产生 wsdl
Endpoint.publish("http://192.168.1.188:8080/getMessage", new GetMessageImpl());
浏览器访问即可:+wsdl(http://192.168.1.188:8080/getMessage?wsdl)
Spring Cxf
(2)使用MyEclipse根据XML生成相关的类
创建GetMessageImpl类(由GetMessageImplService生成),调用约定的方法

负载均衡

负载均衡机制
集群和负载均衡{
1.集群是多个服务器组合成一个系统,对外看是一个系统
2.负载均衡是多个服务器代码相同
    session同步/同一个IP访问同一个服务器
    1.nginx
    2.配置 upstream 域名 注册的服务器
        ip_hash 使用ip来分派不同步session
    3.listen 端口
}

总结

服务器搭建:
1.集群(使用RPC,WS,MQ等方式通讯),外部看来是一个系统
2.负载均衡 多个服务器代码相同
1.session 同步
2.固定IP

数据库

NOSQL
关系型数据库
非关系型数据库
mongoSQL

Redis

key-value/效率很高
支持String/list/set/zset

key-value模式:value可以存放二进制,可以设置过期时间
hset key-filed-value 存放对象
list 队列和堆栈的形式
set 集合,可以求差集和并集
sort set 有序集合 排行版
订阅发布 publish/psubscribe
...
运用场景

jedis

java来使用redis

内存数据库
SQLite

数据库 主从分离

主数据库 CRUD
从数据库 READ

单点登录

多系统共存的情况下 用户在一个地方登陆就不用在其他地方登陆
jsonP实现单点登录

linux

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值