1. 传统三层架构

配图是一个基于MVC的三层架构, 大致可以分成表现层, 业务层和持久层

表现层负责接收请求和转发请求

业务层主要负责处理请求, 值得注意的是事务管理, 日志记录等操作通常也是封装在这层中

持久层主要负责数据库与实体之间的操作

我们可以使用框架来简化各层的开发, 例如表现层使用SpringMVC或Strut2, 持久层使用Mybatis或Hibernate, 使用Spring管理三层之间的关系

2. 集群架构

集群属于水平拓展.

传统三层架构中存在许多问题, 比如业务层中不同模块占用系统资源的比例相差太大, 导致占用系统资源, 可以使用集群解决这类问题.

在集群架构, 一般由这么一个重要的角色, 那就是反向代理服务器, 它的主要任务是实现负载均衡, 接收用户请求, 转发到目标服务器.

反向代理服务器可以使用nginx实现.

3. 分布式架构

多个模块完成一个功能.

每个模块都可以搭建集群 -> 高可用

4. 微服务架构

根据产品的业务功能模块来划分服务的种类, 这属于垂直划分.

客户端可以通过基于HTTP或RPC的方式来调用微服务, 这样做的目的是为了降低调用所产生的性能开销.

每个模块也可搭建集群 -> 高可用

三种轻量级API调用服务 - 使用service gateway和service register实现客户端与微服务之间的调用(实现通信)

SOA实现两个系统之间通信的三种方式

dubbo体系结构:

一个典型的基于SOA的电商项目架构:

四种JavaEE架构简介的更多相关文章

  1. 8237dma的四种传送方式简介

    8237A有四种工作方式:单字节传送.数据块传送.请求传送和多片级联. (1)单字节传送(single mode) 单字节传送方式是每次DMA传送时,仅传送一个字节.传送一个字节之后,当前字节计数器减 ...

  2. java四种线程池简介,使用

    为什么使用线程池 1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务. 2.可以根据系统的承受能力,调整线程池中工作线线程的数目,防止消耗过多的内存 3.web项目应该创建统 ...

  3. JavaEE架构简介与JavaWeb新特性

    Fragment 将一个web应用做成几个部分,然后整合 创建Fragment项目   然后打包放入Servlet项目中的WEB-INF下的lib中 注解 @WebServlet @WebServle ...

  4. javaee 架构师之路

    Java程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 核心编程 IO.多线程.实体类. 集合类.正则表达式. XML和属性文件 图形编程 ...

  5. Delphi中弹出提示框的四种方法

    参考:http://blog.itpub.net/8432156/viewspace-924843/ 更为详细的内容请参见:http://blog.csdn.net/akof1314/article/ ...

  6. Java更新XML的四种常用方法简介

    本文简要的讨论了Java语言编程中更新XML文档的四种常用方法,并且分析这四种方法的优劣.其次,本文还对如何控制Java程序输出的XML文档的格式做了展开论述. JAXP是Java API for X ...

  7. iOS中常用的四种数据持久化方法简介

    iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...

  8. 朱晔的互联网架构实践心得S2E5:浅谈四种API设计风格(RPC、REST、GraphQL、服务端驱动)

    Web API设计其实是一个挺重要的设计话题,许多公司都会有公司层面的Web API设计规范,几乎所有的项目在详细设计阶段都会进行API设计,项目开发后都会有一份API文档供测试和联调.本文尝试根据自 ...

  9. [转]分享php中四种webservice实现的简单架构方法及实例

    FROM : http://www.itokit.com/2012/0417/73615_2.html 本人所了解的webservice有以下几种:PHP本身的SOAP,开源的NUSOAP,商业版的P ...

随机推荐

  1. mac 安装配置使用 mongoldb

    mac 安装配置使用 mongoldb 安装和配置 brew install mongos brew install mongo # 密码就是用户的密码 # 配置数据文件 //如果不配置会出现错误62 ...

  2. CodeForces 1152D Neko and Aki's Prank

    说明 Catalan(i) 表示卡特兰数的第 i 项. 题目链接:http://codeforces.com/problemset/problem/1152/C 题目大意 有 n 个左括号和 n 个右 ...

  3. Linux环境下Jmeter 报错:Unable to get local host IP address

    主要是没有在host中配置本机ip hostname查看本机名 [root@test task]# hostname test [root@test task]# 打开 [root@test task ...

  4. vue多文件上传进度条 进度不更新问题

    转自 hhttp://www.cnblogs.com/muge10/p/6767493.html 感谢这位兄弟的文章,之前因为这个问题 ,我连续在sgmentflow上提问过多次,完全没人能回答.谢谢 ...

  5. SHELL脚本中执行SQL语句操作MYSQL的5种方法

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...

  6. Docker的镜像 导出导入

    查看当前已经安装的镜像 vagrant@vagrant:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.7.22 ...

  7. CSS3——过渡

    过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 帧动画:通过一帧 ...

  8. 0929CSP-S模拟测试赛后总结

    70分31名滚粗. 赛后发现赛时得到的分数全都是暴力分…… T2打的三分跑都没跑……边界设错了……赛后稍微调了调多了15分…… 据说有15分的暴力分,那么另外15分就是只有一种选择的情况了…… (如果 ...

  9. 数论剩余系——cf1089F

    关于模和互质,很好的题目 /* n两个质因子 x,y有 ax+by=n-1 ax+by=n-1 ax+1+by=n y|ax+1 gcd(x,y)=1 ax%y,a取[1,y-1],就会有[1,y-1 ...

  10. 查看linux的登录日志

    查看linux的登录日志 1. lastlog 列出所有用户最近登录的信息  lastlog引用的是/var/log/lastlog文件中的信息,包括login-name.port.last logi ...