应用架构

Java单体应用 - 架构模式 - 02.MVC架构

ⅰ亾dé卋堺 提交于 2020-03-10 11:36:17
原文地址: http://www.work100.net/training/monolithic-architecture-mvc.html 更多教程: 光束云 - 免费课程 MVC架构 序号 文内章节 视频 1 什么是MVC架构 - 2 MVC架构程序的工作流程 - 3 三层架构+MVC示意图 - 请参照如上 章节导航 进行阅读 1.什么是MVC架构 MVC,即 Model 模型、View 视图,及 Controller 控制器。 View :视图,为用户提供使用界面,与用户直接进行交互。 Model :模型,承载数据,并对用户提交请求进行计算的模块。其分为两类,一类称为数据承载 Bean,一类称为业务处理 Bean。所谓数据承载 Bean 是指实体类,专门用户承载业务数据的,如 Student 、 User 等。而业务处理 Bean 则是指 Service 或 Dao 对象, 专门用于处理用户提交请求的。 Controller :控制器,用于将用户请求转发给相应的 Model 进行处理,并根据 Model 的计算结果向用户提供相应响应。 2.MVC架构程序的工作流程 用户通过 View 页面向服务端提出请求,可以是表单请求、超链接请求、AJAX 请求等 服务端 Controller 控制器接收到请求后对请求进行解析,找到相应的 Model 对用户请求进行处理 Model 处理后

浓缩精华的架构演进过程,经验总结,值得收藏!

◇◆丶佛笑我妖孽 提交于 2020-03-09 12:27:53
架构设计的演进过程 业务驱动技术的发展是亘古不变的道理。最开始的时候,业务量少,业务复杂度低,采取的技术也相对简单,基本满足用户对功能的需求。随着IT信息化的普及,更多的交易放到了网络上,信息量增加和访问次数频繁就是要解决的问题了。因此,逐渐加入了缓存、集群等技术手段。同时对业务的扩展性和伸缩性的要求也越来越高。高并发、高可用、可伸缩、可扩展、够安全的软件架构一直是架构设计追求的目标。今天我们来看一下架构设计经历了哪些阶段,每个阶段都解决了哪些问题,又引出了哪些新问题。主要是引起大家的思考,在不同的业务发展阶段采取合适技术手段,用变化拥抱变化是IT人追求的目标。 应用与数据一体模式 最早的业务应用以网站、OA等为主,访问的人数有限,单台服务器就能够应付。通常,将应用程序和数据库部署到一台服务器上面,如图1-1所示。在这一阶段,我们利用LAMP(Linux Apache MySQL PHP)技术就可以迅速搞定,并且这些工具都是开源的。很长一段时间内,有各种针对这种应用模式的开源代码可以使用。这种模式基本上没有高并发的要求,可用性也很差。有的服务器采用托管模式,上面就安装了不同的业务应用,一旦服务器出现问题,所有的应用就罢工了。不过其开发和部署成本相对较低,适合刚刚起步的应用服务。图1 就描述了单个应用和数据库运行在单台服务器的模式,我们称这种模式为应用与数据一体模式。 图 1

NoSQL在大数据中的应用

浪子不回头ぞ 提交于 2020-03-09 04:12:12
一、 序言 NoSQL是Not Only SQL的缩写,而不是Not SQL,指的是非关系型的数据库,它不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准、ACID属性、表结构等等。相比传统数据库,叫它分布式数据管理系统更贴切,数据存储被简化更灵活,重点被放在了分布式数据管理上。 随着互联网 web2.0 网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。 二、 大数据时代 随着互联网 web2.0 网站的兴起,非关系型的数据库成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题: 1、 High performance - 对数据库高并发读写的需求 web2.0 网站要根据用户个性化信息来实时生成 动态页面 和提供动态信息,所以基本上无法使用 动态页面静态化 技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的BBS网站

技术破局:如何实现分布式架构与云原生?| 含 ppt 下载

こ雲淡風輕ζ 提交于 2020-03-06 18:28:35
2月19日-2月26日,蚂蚁金服开展了“共战‘疫情’,技术破局”数字课堂线上直播,邀请资深专家从“云原生”、“研发效能”、“数据库”三方面分享蚂蚁金服的实践经验并在线答疑,解析 PaaS 在金融场景的落地建设实践,解析支付宝移动端弹性动态架构,分享 OceanBase 2.2版本的特性和实践。 本文根据 蚂蚁金服 SOFAStack 产品专家俞仁杰 ,在蚂蚁金服数字课堂直播间分享的云原生应用 PaaS 平台的建设实践内容整理,以下为演讲整理全文: 大家好,欢迎来到蚂蚁金服数字课堂直播间。今年 2 月,SOFAStack 金融分布式架构产品已经在阿里云上完成了商业化发布,为了让更多朋友了解到我们的产品的能力、定位以及背后的设计思路,后续我们会有一系列的直播分享。我们今天想分享给大家的话题叫《 云原生应用 PaaS 平台的建设实践 》,主要会围绕 PaaS 产品能力在一些需要稳妥创新的金融场景下的落地思路,并且能够更好地与云原生架构做好链接。 金融场景云原生落地面临挑战 云原生是业务快速变化背景下的必然技术趋势 回顾 IT 的发展史,云计算分类为 IaaS PaaS 和 SaaS 已经有十几年了。而事实上,整个云计算行业的发展,我们能够明显看到企业在落地云计算战略的时候经历的三个阶段,Cloud-Based, Cloud-Ready, Cloud-Native

什么是微服务

杀马特。学长 韩版系。学妹 提交于 2020-03-06 08:39:46
转载: 一、微服务介绍 1. 什么是微服务 在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务", 微 狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨就够了 )。 而所谓服务,一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。 2. 微服务由来 微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。 3. 为什么需要微服务? 在传统的IT行业软件大多都是各种独立系统的堆砌,这些系统的问题总结来说就是扩展性差,可靠性不高,维护成本高。到后面引入了SOA服务化,但是,由于 SOA 早期均使用了总线模式,这种总线模式是与某种技术栈强绑定的,比如:J2EE。这导致很多企业的遗留系统很难对接,切换时间太长,成本太高

JEE2020-08-Java多层架构应用系统部署

天大地大妈咪最大 提交于 2020-03-05 13:57:07
Java多层架构应用系统部署 Java应用服务器部署 Tomcat目录的作用 解压缩tomcat的安装文件后, 称为tomcat应用服务器软件. 其中各目录的作用如下: bin目录中是启动和关闭tomcat的脚本文件 conf目录是tomcat的配置文件 lib目录是tomcat和web应用使用的jar包 logs目录是tomcat日志文件 temp目录用于tomcat存储临时文件 webapps目录是发布web应用的目录 work目录是存储由jsp生成的servlet文件的目录 Tomcat部署过程 安装JDK后, 确认Java版本为1.8 解压缩tomcat后, 到tomcat的bin目录, 运行startup.bat, 启动tomcat, 发现需要先设置环境变量JAVA_HOME D:\workspace\apache-tomcat-8.5.51\bin>java -version java version "1.8.0_241" Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode) D:\workspace\apache-tomcat-8.5.51\bin>startup.bat

京东架构深度讲解:分布式Java应用基础与实践

不想你离开。 提交于 2020-03-04 21:37:46
【推荐】2020年最新Java电子书集合.pdf(吐血整理) >>> 前言 本书介绍分布式Java应用涉及的知识点,分为基于Java实现网络通信、RPC:基于SOA实现大型分布式Java应用:编写高性能Java应用:构建高可用、可伸缩的系统4个部分,共7章内容。作者结合自己在淘宝网的实际工作经验展开论述,既可作供初学者学习,也可供同行参考。 目标读者 本书涵盖了编写高性能、高可用以及可伸缩的分布武Java应用所需的知识点,适合希望掌握这些知识点的读者。 在介绍各个知识点时,作者尽量结合自己的工作,分享经验与心得,希望能够对那些有相关工作经验的读者有所帮助。 内容导读 本书按照介绍的知识点分为五个部分:第一部分 介绍基于Java实现系统间交互的相关知识,这些知识在第1章中进行介绍:第二部分为基于SOA构建大型分布式Java应用的知识点,这些在第2章中介绍:第三部分为高性能Java应用的相关知识,这些在第3、4、5章中介绍:第四部分介绍高可用Java应用的相关知识,这些在第6章中介绍:第五部分介绍可伸缩Java应用,这些在第7章介绍,读者也.可根据自己的兴趣选择相应的章节进行阅读。 分布式Java应用 大型分布式Java应用与SOA 深入理解JVM 分布式Java应用与Sun JDK类库 性能调优 构建高可用系统 构建可伸缩的系统 来源: oschina 链接: https://my

MySQL之架构与历史(二)

大憨熊 提交于 2020-03-03 23:08:15
多版本并发控制 MySQL的大多数事务型存储引擎实现的都不是简单的行级锁。基于提升并发性能的考虑,它们一般都同时实现了多版本并发控制(MVCC)。不仅是MySQL,包括Oracle、PostgreSQL等其他数据库系统也都实现了MVCC,但各自的实现机制不尽相同,因为MVCC没有一个统一的实习标准。 可以认为MVCC是行级锁的一个变种,但是它在很多情况下避免了加锁操作,因此开销更低。虽然实现机制不同,但大都实现了非阻塞的读操作,写操作也只锁定了必要的行。 MVCC的实现,是通过保存数据在某个时间点的快照来实现的。也就是说,不管需要执行多长时间,每个事务看到的数据都是一致的。根据事务开始的时间不同,每个事务对同一张表,同一时刻看到的数据可能是不一样的。 前面说到不同存储引擎的MVCC实现是不同的,典型的有乐观(optimistic)并发控制和悲观(pessimistic)并发控制。下面我们通过InnoDB的简化版行为来说明MVCC是如何工作的。 InnoDB的MVVC,是通过在每行记录后面保存两个隐藏列来实现的。一个保存了行的创建时间,一个保存了行的过期时间(或删除时间)。当然存储的并不是实际的时间值,而是系统版本号(system version number)。每开启一个新的事务,系统版本号都会自动递增。事务开始时刻的系统版本号会作为当前事务的版本号

redis

允我心安 提交于 2020-03-03 16:47:32
概述: redis是一款开源的高性能键值对非关系数据库 支持的键值类型:   1.字符串类型 String   2.哈希类型 hash   3.列表类型 list   4.集合类型 set   5.有序集合类型 sortedset 应用场景:    缓存(数据查询,短连接,新闻内容,商品内容等等)   聊天室的在线好友列表   应用排行榜   网站访问统计   数据过期处理   分布式集群架构中的session分离 下载安装:    推荐使用中文网的资源,下载快: https://www.redis.net.cn/    解压可直接使用 来源: https://www.cnblogs.com/jasonjson/p/12402763.html

InfoQ演讲视频清单

柔情痞子 提交于 2020-03-02 19:20:06
ref:http://www.infoq.com/cn/presentations/12 ========================Start========== 地址:http://www.infoq.com/cn/presentations/lbs-practice-of-shared-travel 标题:共享出行的 LBS 实践 作者 杨巍 发布于 2016年11月28日 内容:共享出行正在改变着我们的生活,前段时间的共享单车又是一夜之间火爆互联网。其绿色低碳、价格低廉等优势深刻代表了共享出行的新形式,其意在帮助每一位城市人更便捷的完成短途出行。这其中,LBS 至关重要,用户寻车、用车、还车,每一个环节 LBS 都在其中扮演不可替代的角色。高德是如何助力共享单车实现这些场景的,哪些产品在其中发力,实现过程中又会有隐藏哪些能够令人深思的问题?本次演讲将为您解答。 ================================== ========================Start========== 地址:http://www.infoq.com/cn/presentations/core-strengths-and-core-competitiveness-of-rust-language 标题:Rust语言的核心优势和核心竞争力 作者 庄晓立 发布于