J2EE企业级应用架构
一、企业级应用架构解析
应用特点
多环境多系统的交互
海量数据、高并发【用户访问量】、高TPS【每秒吞吐量】
安全等级高
自动化集群管理
架构原则
CAP原则(一致性【数据变动要同步】、可用性【随着数据访问量增长保证性能,数据库性能管理】、分区容错性)
复杂的事情简单化
架构的目标
高速缓存 【redis、Memcached等技术】
并行计算
负载均衡
数据备份【主备份,线上库到离线库备份】
异地容灾【备用多个机房存储数据库】
业务分离【拆分大应用为多个小应用,以服务化的方式暴露接口,简化应用】
二、架构发展:
2.1 原始版:
用户+服务器【单台虚拟机】+数据库【mysql或者oracle】,用户访问量比较少,该企业架构特点:单节点【只有一台机器】,几乎无容灾【如果机器挂了只能重启】,负载能力低【访问量比较少】,维护简单【只有一台服务器,所以对应用监控比较简单,数据库管理比较简单,企业部署成本比较低】
2.2 动静分离版
加入Nginx,通过Nginx来访问静态资源,用户通过REST API来访问Web应用,通过ajax获取数据,提交数据,极大减少了和用户交互的流量, html、js、css大资源通过Nginx传送给用户,降低交互流量,Nginx还负责均衡,同时增加服务器部署,可以提高访问量。使用了框架spring,Struts,mybatis,节省开发时间。该架构特点:Nginx访问静态资源,Nginx负载均衡,应用分离,依赖框架,安全性低【暴露REST API】,Session 持久化问题【部署了多台服务器,Session持久化成为问题】。
2.3 缓存版
加入高速缓存,支持key-value形式的查询,可以达到6w/s查询量。基于请求的缓存,当http请求发起,先去查询高速是否有结果,没有的话,查询数据库,写入高速缓存,返回给用户;基于查询结构缓存,先根据相应条件查询高速缓存,没有的话则查询数据库,写入缓存返回给用户;将Session存于高速缓存里头,当多台机器访问应用时,将session的id在高速缓存进行查询。该架构特点:大量使用缓存、Nginx接收Https、Session 持久化、一致性问题【数据同步问题】、缓存失效问题【设置session失效时间】,虽然还存在后两者的问题,但是极大提高企业负载能力。
2.4 分布式服务
分布式架构,拆分业务功能,保证功能不变的情况下,将应用拆分前端web应用和后端服务,后端服务又拆分多个小应用,共同提供服务,将服务封装起来,提供逻辑。web如何将多个应用提供给远程调用,这时候就要提供服务总线\注册中心进行应用管理,例如分布式框架dubbo。该架构特点:小型机虚拟化【将服务器部署在虚拟机中】、请求处理与业务拆分、应用服务化、同步异步拆分、数据库读写分离【查询映射到读库上】、运维难度大大增加。消息中间件:例如mq、Metaq中间件,将大量异步操作发送到中间件,后台均匀消费这些请求,同步异步拆分提升吞吐量。调度中间件:ScheduleX。该架构缺点:当出现高并发的时候,对于小型机压力很大。
2.5 弹性计算
采用Docker容器级虚拟化,使得服务器资源实时分配。当负载大时候,docker虚拟并启动应用。新增Hadoop日志搜集平台,将日志写入日志平台。通过与Docker配合极大提高负载性能。该架构特点:容器级虚拟化、应用资源动态分配、离线数据采集分析系统、数据库读写分离、硬件成本下降、异地容灾。数据库新增了于hadoop进行交互,极大提升了性能。
三、常见的服务治理的方式
3.1 多域名分配
每个应用专属域名
Http做进程通信
硬件负载或者Nginx
多语言
安全性较低
无法编辑检查
3.2 企业服务总线
支持多种方式路由以及注册
工作流的集成 高效、
容易维护
过度依赖于中心
软件成本高
3.3 分布式服务框架
无中心也可以工作
基于接口编译检查
Java环境中开发学习成本低
高效、高可用
多语言支持不足
J2EE企业级应用架构的更多相关文章
- J2EE企业级应用架构发展
一. 准备工作 1. 本文参考 J2EE企业级应用架构 二. 架构发展 1. 原始版 用户+服务器[单台虚拟机]+数据库[mysql或者oracle],用户访问量比较少. 特点:单节点[只有一台机器] ...
- 读书笔记: Microsot .NET企业级应用架构设计
Microsot .NET企业级应用架构设计 Dino Esposito Andrea Saltarello 编 陈黎夫 译 人民邮电出版社 第一部分 设计原则 第1章 当代架构师和架构 ...
- MS .NET企业级应用架构设计笔记1(关于业务层)
本文针对<MS .NET企业级应用架构设计>业务层前半部分做了相关笔记并记录了自己的一点想法.对于后半部分的具体模式将在第二次笔记中体现. 关于Layer与Tier Layer一般用来 ...
- J2EE WEB应用架构分析
1. 架构概述 J2EE体系包括java server pages(JSP) ,java SERVLET, enterprise bean,WEB service等技术.这些技术的出现给电子商务时代的 ...
- [转载]企业级应用架构(NHibernater+Spring.Net+MVC3)
本人已经从事公司两套这类架构系统的开发工作啦!对于这套架构,我惊叹不已!BPS和CMS系统都是采用这套架构.但本人也同时渐渐发现了这套架构有诸多 不足之处,于是本人利用闲暇时光进一步改进了这套架构.新 ...
- [转]专访企业QQ SaaS团队,谈企业级LNMP架构设计
FROM : http://www.csdn.net/article/2014-08-20/2821302-interview-tencent-b-qq-shuai-wang 对比IaaS和PaaS, ...
- J2EE的体系架构
J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),它的核心是一组技术规范与指南,提供基于组件的方式来设计.开发.组装和部署企业应用.J2EE使用多 ...
- J2EE的体系架构——J2EE
J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition),它的核心是一组技术规范与指南,提供基于组件的方式来设计.开发.组装和部署企业应用.J2EE使用多 ...
- 企业级应用架构模式N-Tier多层架构
先来看经典的3层架构,看下图: 涉及到平台可以是: Ruby on Rails, Java EE, ASP.NET, PHP, ColdFusion, Perl, Python 层 ...
随机推荐
- 【经典漏洞案例】NSA黑客工具包——Windows 0day验证实验
还记得今年4月中旬,Shadow Brokers(影子经纪人)黑客组织发布出一份震惊世界的机密文档,其中包含了多个Windows 远程漏洞利用工具,此工具集覆盖大量的Windows服务 器,可以被任何 ...
- 简单列举几种常用 FTP
简单说下几种FTP FTP:文件传输协议(File Transfer Protocol,FTP) SFTP:OPENSSH 提供的隧道级文件传送(file transfer) FTPS:支持传输层安全 ...
- mxonline实战-1,创建应用及相应模型
前言 环境说明:python3.5 + django2.0, 用的pycharm4.04专业版 课程视频地址 https://coding.imooc.com/learn/list/78. ...
- 爬虫6:pyquery库
强大又灵活的网页解析库,如果觉得正则写起来太麻烦,BeautifulSoup语法太难记,而你又熟悉jQuery的语法,那么用PyQuery就是最佳选择 一. 初始化 1. 字符串初始化 h ...
- Eureka客户端注册过程源码解析
微服务中注册中心是其重要的组成部分,那么客户端是如何注册到注册中心的呢,下面我们进入源码查看. 客户端的注册标志是@EnableDiscoveryClient,我们点进入注解查看 注解介绍这是开启Di ...
- Lucene7.4学习和简单使用
简述: 前面从新回顾学习了Solr,正好也借此机会顺便学习一下Lucene. 一.什么是Lucene? 全文检索的一个实现方式,也是非结构化数据查询的方法.应用场景:在数据量大,数据结构不固定的时候, ...
- Python数据结构之序列及其操作
数据结构是计算机存储,组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合. 在Python中,最基本的数据结构为序列(sequence).序列中的每个元素都有编号:从0开始递增 ...
- Access to the path ‘’ is denied
2019/4/29 问题:利用VS实现数据导出,出现Error:Access to the path 'F:\HPYMTotalCode\Web\dd\xmqjd.xls' is denied. 原因 ...
- springcloud(九)-Feign使用Hystrix
前言 上一篇我们使用注解@HystrixCommond的fallbackMethod属性实现回退.然而,Feign是以接口形式工作的,它没有方法体,上一篇讲解的方式显然不适用于Feign. 那么Fei ...
- JavaIO流总结
字节流 InputStream FileInputStream FilterInputStream BufferedInputStream DataInputStream PushbackInputS ...