架构04-架构的分层

技术框架是一个可重复使用的设计,用于构建整个或部分技术系统,包括一组抽象构件和这些构件实例之间的交互方法。它可以被技术开发者定制为应用的骨架,以满足特定的目标和需求。

从技术层面来描述,技术框架通常采用分层模型。以下是一些常见的技术框架及其在不同层次的应用:

1. 持久层框架:用于处理数据持久化的技术框架,例如Hibernate、MyBatis等。这些框架提供了与数据库交互的工具和方法,简化了数据库访问的过程。

2. 数据层框架:用于处理数据转换和数据操作的技术框架,例如Spring Data JPA、Spring JDBC等。这些框架提供了对数据的访问和管理功能,使开发者可以更方便地操作和处理数据。

3. 逻辑层框架:用于实现业务逻辑的技术框架,例如Spring Framework、JavaEE等。这些框架提供了一系列的类和方法,用于处理业务逻辑的组织和管理,使开发者能够更高效地开发和维护业务逻辑部分。

4. 应用层框架:用于构建应用程序的技术框架,例如Spring Boot、Apache Struts等。这些框架提供了整个应用程序的基础结构和功能,包括配置管理、请求处理、路由等,简化了应用程序的开发和部署过程。

5. 表现层框架:用于实现用户界面和用户交互的技术框架,例如Spring MVC、React、Vue.js等。这些框架提供了创建和管理用户界面的工具和方法,使开发者能够更轻松地构建响应式和交互性强的界面。

此外,还有一些成熟的类库、中间件和Web服务框架,如Apache Commons、nginx、Apache CXF等,它们提供了各种通用的功能和组件,用于增强系统的稳定性、扩展性和性能。

综上所述,不同层次的技术框架在整个系统中发挥着重要的作用,通过提供各种功能和工具,简化了开发的流程,并帮助开发者更好地实现系统的主要功能。

图片

分层下看架构技术点:

对于开发者而言,实际工作从通常采用的是分层模型,总结下经典的七层逻辑架构。

图片

系统采用了七层逻辑架构,包括客户层、前端优化层、应用层、服务层、数据存储层、大数据存储层和大数据处理层。

1. 客户层:这一层主要关注优化用户体验,采取一系列策略来减少HTTP请求数量,包括浏览器缓存、启用压缩、使用异步加载JS、减少Cookie传输等。

2. 前端优化层:这一层主要关注提升前端性能和可用性。采用DNS负载均衡、CDN本地加速和反向代理服务等技术来提高网页加载速度和响应效率。

3. 应用层:这一层主要关注业务逻辑的处理和应用拆分。涉及到负载均衡、分级管理、应用缓存、服务集群、快速失败、异步调用、服务降级、消息队列、幂等设计等技术,以提高应用的性能、可伸缩性和可靠性。

4. 服务层:这一层提供各种公共服务,如用户服务、订单服务、支付服务等。通过服务层的封装,可以方便地提供统一的接口和功能,降低开发的复杂性。

5. 数据存储层:这一层负责处理系统中的数据存储需求。采用分布式数据库集群、读写分离、NOSQL集群、文件系统集群等技术,实现数据的高可用性、扩展性和性能。

6. 大数据存储层:这一层用于存储应用层和服务层产生的日志数据以及结构化和半结构化数据。通过大数据存储层,可以有效地进行数据采集、存储和管理。

7. 大数据处理层:这一层使用MapReduce进行离线数据分析或使用Storm进行实时数据分析,并将处理后的数据存入关系型数据库中。根据业务需求,可以将离线数据和实时数据分类处理并存储于不同的数据库中,以供应用层或服务层使用。

总之,这个系统的架构提供了一种可扩展、可靠的方式来处理用户请求、处理业务逻辑、存储数据和进行大数据处理。不同层次的技术和策略相互配合,为系统的性能、可伸缩性和可靠性提供了支持。

关注公众号:领取架构师面试资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/344501.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【VRTK】【Unity】【游戏开发】更多技巧

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 本篇将较为零散但常用的VRTK开发技巧集合在一起,主要内容: 创建物理手震动反馈高亮互动对象【创建物理手】 非物理手状态下,你的手会直接…

Redis-浅谈redis.conf配置文件

Redis.conf Redis.conf是Redis的配置文件,它包含了一系列用于配置Redis服务器行为和功能的选项。 以下是Redis.conf中常见的一些选项配置: bind: 指定Redis服务器监听的IP地址,默认为127.0.0.1,表示只能本地访问,可以…

不同activity项目创建时的区别

在 Android Studio 中创建项目时,可以选择创建不同类型的 Activity 作为应用程序的入口点。其中,包括 Empty Activity、Basic Activity、Empty Compose Activity 和 Basic Compose Activity 四种类型。 Empty Activity:这是最简单的 Activity…

运动模型非线性扩展卡尔曼跟踪融合滤波算法(Matlab仿真)

卡尔曼滤波的原理和理论在CSDN已有很多文章,这里不再赘述,仅分享个人的理解和Matlab仿真代码。 1 单目标跟踪 匀速转弯(CTRV)运动模型下,摄像头输出目标状态camera_state [x, y, theta, v],雷达输出目标状…

IDEA创建springboot+mybatis项目(java8 和java21可行)

IDEA创建springbootmybatis项目(java8 和java21可行) 今天博主讲一下,IDEA创建springbootmybatis项目的文章。 步骤分别是如下几步: 1. 创建maven项目 2. 配置pom.xml文件 3. 创建目录结构 4. 创建配置项目文件 5. 生成创建…

[前车之鉴] SpringBoot原生使用Hikari数据连接池升级到动态多数据源的深坑解决方案 RocketMQ吞掉异常问题排查

文章目录 背景说明蒙蔽双眼口说无凭修补引发的新问题解决配置问题 本地监控佐证万法归元 背景说明 当前业务场景我们使用原生SpringBoot整合Hikari数据源连接池提供服务,但是近期业务迭代需要使用动态多数据源,很自然想到dynamic-source,结果…

如何把本地项目一次性上传github(避免一个一个上传)

一、方法如下(亲测有效): 如何把本地项目上传github_本地已有工程上传github-CSDN博客 执行成功截图如下: 二、如果按照上面链接遇到问题: 问题0: 上面链接方法最后一步执行后,提示不能访问g…

OpenssH 漏洞修复

文章目录 OpenSSH 漏洞修复需求:准备环境配置阿里云yum源关闭防火墙 && SELinux安装 telnet-server安装 zlib 软件包安装OpenssL安装 OpenssH报错信息 OpenSSH 漏洞修复 场景: CentOS Stream 9 系统ssh默认版本一般是OpenSSH_8.7p1 ,…

【QUARTZ】springboot+quartz动态配置定时任务

Quartz 介绍 Quartz 定时任务可分为Trigger(触发器)、Job(任务)和Scheduler(调度器),定时任务的逻辑大体为:创建触发器和任务,并将其加入到调度器中,如下图所…

CMake+大漠插件的应用开发——处理dm.dll,免注册调用大漠插件

文章目录 CMake大漠插件的应用开发——处理dm.dll,免注册调用大漠插件说明环境项目结构配置编译环境编码-直接调用 dll编码-生成tlh文件,便于提示 CMake大漠插件的应用开发——处理dm.dll,免注册调用大漠插件 说明 网上有一种使用方式是&am…

Playwright 结合 Selenium Grid - 1.windows 环境使用教程

Playwright 可以连接到运行 Selenium 4 的 Selenium Grid Hub 来启动 Google Chrome 或 Microsoft Edge 浏览器,而不是在本地机器上运行浏览器。 下载Selenium Grid 打开selenium官方https://www.selenium.dev/downloads/下载Selenium Server (Grid) 目前最新版本4.16.1 下…

Windows 项目从0到1的部署

目录 一. 安装jdk 1.1 安装jdk 1.2 配置jdk的环境配置jdk 1.3 配置成功 二. 配置tomcat 2.1 启动tomcat 2.2 防火墙设置 三. 安装MySQL 3.1 安装步骤 3.2 内部连接 3.3 外部连接 四. 部署项目 4.1 项目部署 4.2 修改mysql的用户密码 一. 安装jdk 这里给大家准备好了jdk和…