学习
实践
活动
工具
TVP
写文章

应用技术架构 —— 单体架构 & 垂直架构 & SOA 架构

垂直架构 在 1980s 时代,大型应用和超大型应用开始兴起,特别是操作系统和数据库的出现和广泛应用,数百万行代码量的系统较为普遍。 将一个大型应用拆分成多个相互独立的小型应用成为解决单体应用的一种方案,这就是垂直架构(也成为“竖井式架构”)。垂直架构根据业务属性将一个大的单体应用拆分成多个模块或子系统,子系统之间没有直接关联。 垂直架构相较于单体架构而言,进行了部分解耦,但是不够彻底,在各个子系统相互依赖的代码和模块中,存在重复代码拷贝和模块功能重复开发的情况。 垂直架构按功能进行 MVC 划分和按职能进行前后端分离模式,通过分层来规范职责和定义边界。 面向服务的架构(SOA) 随着互联网的出现和发展,软件用户的数量的急剧增长,应用的用户规模指数级增长,具有海量用户的应用变得普遍。垂直架构在技术上很难满足承载海量用户的要求。

1.6K30

垂直电商架构进化之路

近年逐渐形成了垂直领域云的风潮,不断推出适合垂直领域的产品,使客户的使用门槛降低,且能提供更多偏向垂直领域中的通用服务,更贴近现实与解决迫切的问题。 4.1 电商行业对垂直云的要求 高性能 高可用 良好伸缩性 方便地拓展性 安全保证 4.2 电商云的产品形态 4.2.1 电商公有云 比如电商的初级客户,希望快速构建电商系统。 4.3 电商云平台架构 电商云平台架构如下图所示: ? 4.3.1 日志收集 用户通过自助化方式购买日志服务。 4.3.3 伸缩 应用举例:电商购物节 1) 在预定好电商抢购节之前,及时进行系统的扩容,加强系统的服务能力。 抢购活动最基本的技术特征是瞬时高并发,具体举措在用户端到服务端,应用层到基础设施层都有所体现。

1.3K90
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据库架构:分库分表-垂直?水平?

    来源:http://t.cn/Efpe4Ae 一、数据库瓶颈 1、IO瓶颈 2、CPU瓶颈 二、分库分表 1、水平分库 2、水平分表 3、垂直分库 4、垂直分表 三、分库分表工具 四、分库分表步骤 3、垂直分库 ? 1、概念:以表为依据,按照业务归属不同,将不同的表拆分到不同的库中。 第一步:(同步双写)应用配置双写,部署; 第二步:(同步双写)将老库中的老数据复制到新库中; 第三步:(同步双写)以老库为准校对新库中的老数据; 第四步:(同步双写)应用去掉双写,部署; 注:双写是通用方案 github.com/lc-study/study-sharding.git Mycat 读写分离 数据库分库分表 中间件 安装部署,及简单使用 更多技术干货 近期100多篇技术干货,升职加薪必看 数据库架构 Web系统大规模并发:电商秒杀与抢购 秒杀系统架构优化思路 专业解决 MySQL 查询速度慢与性能差 从单体应用,微服务,容器化,的架构演进之路 面试中经常被问到的 Redis 持久化与恢复

    36430

    Dubbo架构(应用架构)

    升级Spring版本到3.x 2、Dubbo整体架构 1、生命周期架构 上述所述为Dubbo内部交互图,主要包括: Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 2、层级架构 Dubbo框架设计一共划分了10个层,而最上面的Service层是留给实际想要使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层。 SPI 机制在第三方框架中也有所应用,比如 Dubbo 就是通过 SPI 机制加载所有的组件。不过,Dubbo 并未使用 Java 原生的 SPI 机制,而是对其进行了增强,使其能够更好的满足需求。 一致性的 ConsistentHashLoadBalance 基于加权轮询算法的 RoundRobinLoadBalance 4、Fifter链及Monitor监控统计 filter在dubbo中的应用非常广泛

    7130

    应用架构应用架构行为准则

    应用架构行为准则 应用程序架构是企业解决方案架构(ESA)的一个子集(图1)。应用程序架构既是一个过程(架构和设计)又是一个东西(可交付成果——架构的内容)。 应用程序架构帮助组织规划其在应用程序解决方案和其他系统中的投资。正在评估、设计和交付的应用程序解决方案必须能够与已建立的解决方案共存。 图1 应用程序架构存在于多个详细级别: 在概念层次上,企业架构(EA)策略和计划确保应用程序组合与其他形式的解决方案架构(业务、技术和信息)协同有效地发展。 应用程序架构的原则适用于所有类型的应用程序方法和解决方案。 在这个概念级别上,最能实现这些策略和计划以及应用程序架构规程的角色是企业解决方案架构师。 项目级的解决方案和应用程序架构师也可能被要求担任这个角色(或者至少就AA规划问题咨询)。

    25030

    「企业架构应用架构概述

    在信息系统中,应用架构应用架构是构成企业架构(EA)支柱的几个架构域之一 应用架构描述了业务中使用的应用程序的行为,重点是它们如何相互之间以及如何与用户交互。 应用架构试图确保组织创建复合架构所使用的应用程序套件是可伸缩的、可靠的、可用的和可管理的。 应用架构定义了多个应用程序如何准备一起工作。 应用架构应用架构师是计算机编程团队中的一名领导或技术经理,专门负责构建应用程序和使用的技术。 任务 应用架构师是组织中应用程序特定的一切的大师。 架构世界的标准在TOGAF中定义,开放组架构框架将EA的四个组件描述为BDAT(业务架构、数据架构应用架构和技术架构, 根据组织的复杂程度,还需要考虑其他标准: EA的Zachman框架 联邦企业架构

    56620

    应用架构应用程序架构的当前趋势

    本文有些不是最最新的,但是方法和思路也有借鉴意义,稍后会介绍Gantner的最新应用架构趋势。 架构师应该考虑适应这些新趋势 使用面向服务架构(service-oriented architecture,SOA),包含微服务(MSA),构建应用程序,并集成内部商用现货(COTS)和遗留应用程序,以及业务合作伙伴应用程序和云服务 接受应用程序范例和模型 术语“应用程序架构”是指应用程序的结构和组织,包括其组件以及它们之间的交互/相互依赖模型。应用程序架构应用架构范例,并使用常见的模式和模型来设计应用程序并定义其架构。 : 范式 模型 结构和组织 范例: 架构范例(有时称为架构样式)是一个总体概念框架,它影响您设计应用程序的方式。 这些架构特性影响应用程序的性能、可伸缩性、健壮性、灵活性、可维护性和总体拥有成本。

    29520

    Android应用架构

    这段时间,我们所构建的Android应用架构和技术也在不断地演变。本文将向您阐述我们的经验,错误以及架构变化背后的原因。 想象一个简单且常见的场景,应用需要加载一个博客文章列表,然后缓存这些条目到SQLite数据库,最后将他们展示到ListView等列表视图上。 考虑到经历了前几年的痛苦,我们开始考虑,一个新的应用程序体系架构看起来会是怎样的。因此,我们想出了这个。 ? 类似于第一种架构,这种体系架构同样被划分为Data Layer和View Layer。 不同的应用拥有不同数量的帮助类,但也存在着一些共性: PreferencesHelper:从SharedPreferences读取和存储数据。 不断地阅读和尝试,这样我们才能找到更好的方法来继续构建优秀的Android应用程序。

    49270

    如何基于「盘古开发框架」开发垂直分层单体应用

    本文介绍如何基于盘古开发框架开发一个单体分层架构应用。文中所述仅为搭建一个单体应用的基本框架,增加配置中心、数据持久化、缓存等能力请参考开发指南的相关章节。 背景 软件架构的本质是一种在特定资源背景下折中平衡后追求业务增长的一门艺术。虽然盘古框架的标准姿势是分布式微服务开发,但决定技术开发架构选型的因素很多,单体应用依旧有很多应用场景。 因此,盘古框架不会绑定用户到一个固定的开发范式和架构上,而是支持随意组合、自动装配、灵活插拔。 既能构建大并发高可用的分布式微服务架构也能搭建小巧的垂直单体分层架构。 安装相关盘古模块 <! PanGuApplicationBuilder.init(EmptyWebPanguApplication.class).run(args); } } 本文相关范例源码 pangu-examples-empty-web:单体分层Web应用范例 参考文献 开发架构模式对比 如何开发单体应用 [盘古开发框架形象大使.gif]

    15511

    现代企业架构框架-应用架构

    应用架构的设计主要以应用(Application)的设计为核心,向外围可以延伸到平台型企业架构对于应用分层,分组的设计。 例如大家关注的以微服务为代表的分布式应用架构,以及此类架构模式下的常见问题,例如微服务如何划分如何组织,都是应用架构在这个粒度需要关注的问题。 同样,以应用为基准,向内部延伸又会涉及到应用内部的架构设计。例如常见的应用分层设计,领域驱动设计中提到的六边形架构、洋葱模型,包括领域对象的详细建模与设计,都是在应用架构这个粒度需要关注的问题。 而其中的领域对象设计在业务架构以及后续的数据架构中都会提及,本框架充分融合了企业架构与领域驱动设计的思想和方法,从业务架构应用架构以及后续展开的数据架构,都秉承以领域对象设计作为架构的核心要素,跨越架构边界 我们建议通过建立应用架构与业务架构、数据架构的构建块映射来解决这个问题。

    7920

    垂直方向上下居中_如何实现垂直居中

    某些情形下会出现文本或元素边界渲染模糊的现象

    应用技术架构 —— 微服务架构

    微服务架构演进过程 微服务架构: 有别于更为传统的单体式方案,可将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作(和出现故障)时不会相互影响。 微服务架构与 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。 在 SOA 架构中,应用除了需要实现业务逻辑之外,还需要自行解决上下游寻址、通讯,以及容错等问题。 微服务技术架构 微服务是典型的分布式应用,当一个应用微服务化后,就具有分布式应用的特点和挑战。 应用技术架构主要包括微服务架构、服务网格架构、无服务器架构、分布式多运行架构等; 3. 应用部署与管理主要包括但不限于虚拟化技术、容器技术与容器编排等; 4.

    56920

    Android 应用架构演变

    Android 应用架构演变 原始架构 Android刚开始的时候没有第三方库,基本方式就是AsyncTask 和Handler配合使用,简单直接没有过多分层设计 ? 在此基础上添加或更改新特性成本巨大而且容易出错 很多业务逻辑都在Activity和Fragment中,单元测试根本没法进行 MVC(来自Java Web) 随着界面越来越多,业务越来越复杂,开发人员开始考虑架构设计 优点 结构少容易理解每层的目的 缺点 刚推出还没被大面积使用 总结 原始架构 MVC MVP MVVM这四种架构方式对Android APP来说都是项目结构采用一种方式后基本架构就不会改变。 RxJava agera仅仅是一种编程方式的改变,但这种方式对手机应用开发来说非常合适,鉴于以上架构的演变,原始架构基本不会有人再使用了,MVC在移动端也是不太适合,MVP MVVM都是Google自家推出的

    59920

    应用架构演化进程

    那么应用架构主要有哪些阶段呐?这里作者凭着自己的理解粗糙的讨论一下。算是对这个问题的一种探索吧! 1.单体时代 首先我们要明确是一点是什么是应用应用按理应该包括展示、业务逻辑呵数据存储。 但是这种架构的问题就是随着业务的不断增加,项目的体积会越来越大,而且大家都知道软件工程师往往会通过跳槽来寻找与之能力相匹配的工作,因此单体的架构的维护成本很大。 2.Mvc时代 作者一直在想单体架构和mvc架构的区别,思来想去一直想不明白。我们知道mvc主要描述的是模型、视图、控制器。 而解决应用架构的木桶问题,就必须采用微分的思想,通过不断的合并同类项,让一些具有相同特征的代码合并然后再部署,并能够根据实际情况进行补短板。 而这个拆分就是我们这里所说的SOA(面向服务架构),这里的意思就是说单独的应用应该专注于其领域之内的业务,每个业务通过网络协议对外提供服务,当然这里的调用方式可以是tcp或者http。

    7910

    Android JetPack应用架构

    简介 在2018年的谷歌I/O大会上,官方发布了一系列辅助android开发者的实用工具,合称Jetpack,以帮助开发者构建出色的 Android 应用。 作为下一代的 Android 组件,Android Jetpack 通过提供现代化应用架构以及提供强健的向后兼容能力等方式,让开发者能够快速、轻松地创造拥有卓越性能的高质量应用

    5040

    垂直居中 原

    垂直居中的方法很多,一般是设置line-height,display:table-cell,vertical-align:middle,或者transform:translate(0,-50%),最近看到也可以使用另一种方法实现垂直居中

    25310

    CSS垂直居中

    class="parent">

    </body> 扩展知识 vertical-align属性:用于设置文本内容的垂直方向对齐方式 div class="parent">
    哈哈
    </body> 优缺点分析 优点:父级元素是否脱离文档流,不影响子级元素垂直居中效果

    16430

    内容垂直居中

    内容垂直居中 由 Ghostzhang 发表于 2007-01-22 20:14 在CSSPlay上看到了一个垂直居中的例子,感觉还是不错的,跟大家分享一下: Result 测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容

    5910

    应用架构之择

    有什么样架构,就有什么样建筑! 前者的架构用来盖厂房,后者的架构是建摩天大厦 特不正经就今天和大家讨论软件应用的大厦如何构建? 所有微服务架构导致的问题,都是单体应用的优点 既然谈到了应用架构应用寄生的基础架构我们是绕不开的 有人说serverless架构可以不考虑基础架构,呵呵,这个以后再谈 大家来看看应用架构和基础架构的演变过程 应用架构和基础架构是共生关系,相互促进,相互依赖 单体应用架构物理硬件时代 C/S应用架构虚拟机时代 多层应用架构云计算时代 微服务架构 容器编排时代 那么什么情况下用单体架构(或多层架构),什么情况下用微服务架构 :-) V、大数据架构 vs 传统架构 传统应用数据的典型架构是关系型数据库如Oracle或MySQL,或者微服务+RDB的架构 大数据应用架构的典型架构: 什么时候用大数据,什么时候用传统架构? 数据量 对于数据量来说,一般来讲50TB是一个分水岭,超过50TB数据的应用优先大数据架构。 对于数据量较大,但对性能很敏感的应用,大数据的Spark和Stream是非常好的架构方案选择。 2.

    349100

    扫码关注腾讯云开发者

    领取腾讯云代金券