当前位置: 首页 > news >正文

第一章:绪论

1.1 系统架构概述

架构是体现在组件中的一个系统的基本组织、它们彼此的关系与环境的关系以及指导它的设计和发展的原则。

系统是组织起来完成某一特定功能火一组功能的组件集。系统这个术语包括了单独的应用程序、传统意义上的系统、子系统、系统之系统、产品线、整个企业及感兴趣的其他集合。系统用于完成其环境中的一个或多个任务。

环境或上下文决定了对这个系统的开发、运作、政策以及会对系统造成其他影响的环境和设置。

任务是由一个或多个利益相关者通过系统达到一些目标的系统的一个用途或操作。

通俗的说,系统架构是系统的一种整体的高层次的结构表示,是系统的骨架和根基,支撑和链接各个部分,包括组件、连接件、约束规范以及指导这些内容设计与演化的原理。系统架构设计的目的是对需要开发的系统进行一系列相关的抽象,用于指导系统各个方面的设计与实现,架构设计在系统开发过程中起着关键性作用,架构设计的优劣决定了系统的健壮性和生命周期的长短。

多年来架构的概念经过不断地演化,目前已形成了不同用途的架构模式,比较典型的架构模型包括分层架构、事件驱动架构、微核架构、微服务架构和云架构等5类。

分层架构

分层架构是最常见的架构,也是事实上的标准结构。这种架构降软件分为若干个水平层,每一层都有清晰的角色和分工,且不需要其他层的细节。层与层之间通过接口进行通信。

  • 表现层:用户界面,负责视觉和用户互动;
  • 业务层:实现业务逻辑;
  • 持久层:提供数据,存储SQL语句;
  • 数据库:保存数据。

事件驱动架构

事件是状态发生变化时软件发出的通知,事件驱动架构是通过事件进行通信的软件架构,它分为以下四个部分:

  • 事件队列:接收事件的入口;
  • 分发器:将不同的事件分发到不同的业务逻辑单元;
  • 事件通道:分发器与处理器之间的联系渠道;
  • 事件处理器:实现业务逻辑,处理完成后会发出事件,触发下一步操作。

微核架构

微核架构也称为插件架构,是指软件的内核相对较小,主要功能和业务逻辑都通过插件实现。内核通常只包含系统允许的最小功能,而插件则是互相独立的,插件之间的通信应该减少到最低,避免出现互相依赖的问题。

微服务架构

微服务架构是服务导向架构的升级,每一个服务都是一个独立的部署单元,这些单元都是分布式且互相解耦的,彼此之间通过远程通信协议联系。

微服务分为三种实现模式:

  • RESTful API模式:服务通过API提供;
  • RESTful应用模式:服务通过传统的网络协议或应用协议提供,背后通常是一个多功能的应用程序,常见于企业内部;
  • 集中消息模式:采用消息代理可以实现消息队列、负载均衡、统一日志和异常处理,缺点是会出现单点失败,消息代理需要做成集群。

云架构

云架构主要解决扩展性和并发的问题,是最容易扩展的架构。它的高扩展性体现在将数据都复制到内存中,变成可复制的内存数据单元,然后将业务处理能力封装成一个个的处理单元。如果访问量增加,则新建处理单元;如果访问量减少,则关闭处理单元。

云架构主要分层两部分:处理单元和虚拟中间件。

  • 处理单元:主要负责实现业务逻辑;
  • 虚拟中间件:负责通信、保持会话控制、数据复制、分布式处理和处理单元的部署。

其中虚拟中间件又包含以下四个组件:

  • 消息中间件:主要用于管理用户请求和会话控制,当一个请求进来,由消息中间件决定分配给哪一个处理单元;
  • 数据中间件:将数据复制到每一个处理单元,即数据同步,保证每个处理单元都得到相同的数据;
  • 处理中间件:可选,如果一个请求涉及不同类型的处理单元,改中间件负责协调处理单元;
  • 部署中间件:负责处理单元的启动和关闭,监控负载和响应时间,当负载增加,就新启动处理单元;当负载减少,就关闭处理单元。

1.2 系统架构设计师概述

架构设计师是系统开发的主体角色,他们通过执行一系列的活动来实施架构设计。架构设计通过生成过程形成最终的产品架构,架构设计师的成功是创建架构。

架构设计师是负责系统架构的人,是系统或产品线的设计责任人,是一个负责理解和管理并最终确认和评估非功能性系统需求(如软件的可维护性、性能、复用性、可靠性等),给出开发规范,搭建系统实现的核心架构,对整个软件架构、关键构件和接口进行总体设计兵澄清关键技术细节的高级技术人员。

架构设计师在项目中的主要任务刻概述如下:

  1. 领导与协调整个项目中的技术活动,如分析、设计和实施等;
  2. 推动主要的技术决策ing最终表达为系统架构;
  3. 确定系统架构,并促使其架构设计的文档化,包括需求、设计、实施和部署等视图。

一个优秀的架构设计师通常可以做到在软件开发知识和业务领域知识之间的平衡,因此架构设计师应该具备以下专业知识:

  • 掌握业务领域的知识;
  • 掌握技术领域的知识;
  • 掌握设计技能;
  • 具备编程能力;
  • 具备沟通能力;
  • 具备决策能力;
  • 知道组织策略。

相关文章:

第一章:绪论

1.1 系统架构概述 架构是体现在组件中的一个系统的基本组织、它们彼此的关系与环境的关系以及指导它的设计和发展的原则。 系统是组织起来完成某一特定功能火一组功能的组件集。系统这个术语包括了单独的应用程序、传统意义上的系统、子系统、系统之系统、产品线、整个企业及…...

C++面试知识点总结

知识点总结 <<符号表示该语句将把这个字符串发送给cout&#xff1b;该符号指出了信息流动的路径&#xff1b;cout的对象属性包括一个插入运算符&#xff08;<<&#xff09;&#xff0c;它可以将其右侧的信息插入到流中&#xff0c;endl:重起一行。在输出流中插入en…...

从智能手机到智能机器人:小米品牌的高端化之路

原创 | 文 BFT机器人 前言 在前阵子落幕的2023世界机器人大会“合作之夜”上&#xff0c;北京经济技术开发区管委会完成了与世界机器人合作组织、小米机器人等16个重点项目签约&#xff0c;推动机器人创新链和产业链融合&#xff0c;其中小米的投资额达到20亿&#xff01; 据了…...

深度学习推荐系统(八)AFM模型及其在Criteo数据集上的应用

深度学习推荐系统(八)AFM模型及其在Criteo数据集上的应用 1 AFM模型原理及其实现 沿着特征工程自动化的思路&#xff0c;深度学习模型从 PNN ⼀路⾛来&#xff0c;经过了Wide&#xff06;Deep、Deep&#xff06;Cross、FNN、DeepFM、NFM等模型&#xff0c;进⾏了大量的、基于不…...

【Spring】aop的底层原理

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理 Spring 中的切面编程aop的底层原理和重点注意的地方 &#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以…...

微信小程序开发---基本组件的使用

目录 一、scroll-view &#xff08;1&#xff09;作用 &#xff08;2&#xff09;用法 二、swiper和swiper-item &#xff08;1&#xff09;作用 &#xff08;2&#xff09;用法 三、text &#xff08;1&#xff09;作用 &#xff08;2&#xff09;使用 四、rich-tex…...

SpringBoot国际化配置组件支持本地配置和数据库配置

文章目录 0. 前言i18n-spring-boot-starter1. 使用方式0.引入依赖1.配置项2.初始化国际化配置表3.如何使用 2. 核心源码实现一个拦截器I18nInterceptorI18nMessageResource 加载国际化配置 3.源码地址 0. 前言 写个了原生的SpringBoot国际化配置组件支持本地配置和数据库配置 背…...

Shell编程之sort

sort 命令将文件的每一行作为比较对象&#xff0c;通过将不同行进行相互比较&#xff0c;从而得到最终结果。从首字符开始&#xff0c;依次按ASCII码值进行比较&#xff0c;最后将结果按升序输出。 基本语法 sort (选项)(参数) 常用选项 常用选项 -n根据字符串的数字比较-r…...

windows docker 容器启动报错:Ports are not available

docker 启动容器报错&#xff1a; (HTTP code 500) server error - Ports are not available: listen tcp 0.0.0.0:6379: bind: An attempt was made to access a socket in a way forbidden by its access permissions. 问题排查 检查端口是否被其它程序占用&#xff1a;nets…...

300. 最长递增子序列

题目描述 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示…...

DNS(域名解析系统)

含义 当我们在上网要访问莫个服务器的时候&#xff0c;就需要知道服务器的IP地址&#xff0c;但IP地址是一串数字&#xff0c;虽然这串数字用点分十进制已经清晰不少了&#xff0c;但还是不利于人们记忆和传播&#xff0c;于是人们使用单词来代替IP地址&#xff08;例如baidu&a…...

解决jsp/html界面跳转servlet出现404错误的方法

解决jsp/html界面跳转servlet出现404错误的方法 最近在学习黑马项目过程中遇到的问题 问题一&#xff1a; 检查页面的跳转路径和名称拼写是否正确 问题二&#xff1a; tomcat发布项目时所使用的路径名称与项目不同 在idea右上角点击如图圈住的按钮 在deployment中更改出现…...

catface,使用Interface定义Controller,实现基于Http协议的RPC调用

catface 前言cat-client 模块EnableCatClientCatClientCatMethodCatNoteCatResponesWrapperCatClientConfigurationCatClientProviderCatClientFactoryCatSendInterceptorCatHttpCatPayloadResolverCatObjectResolverCatLoggerProcessorCatResultProcessorCatSendProcessorAbst…...

Linux:LVS (NAT群集搭建)

模拟环境 外网入口服务器 外网 192.168.8.88 内网ip 192.168.254.4 web1 服务器 ip 192.168.254.1 网关&#xff1a; 192.168.254.4 web2 服务器 ip 192.168.254.2 网关&#xff1a; 192.168.254.4 共享存储服务器 ip 192.168.254.3 介绍 访问 外网192.16…...

音乐格式转换mp3怎么转?跟着步骤操作一遍

音乐格式转换mp3怎么转&#xff1f;mp3&#xff0c;一种音频数据压缩格式&#xff0c;由于其极具优势的文件尺寸小和高质量音效&#xff0c;自诞生之日起就占据了主流音乐格式的头把交椅&#xff0c;并且至今仍然受到用户的青睐&#xff0c;稳居音乐领域的霸主地位。在我们繁忙…...

it监控系统可以电脑吗?有什么效果

IT业务监控已经成为公司不可或缺的一部分&#xff0c;以确保业务的正常运行&#xff0c;提高企业的竞争能力。本文将详细介绍IT业务监控的必要性、实施方法以及如何选择合适的监控工具。 IT业务监控的必要性 确保业务稳定运行  IT业务监控可以实时检测公司的工作流程&#x…...

jvs-智能bi(自助式数据分析)9.1更新内容

​jvs-智能bi更新功能 1.报表增加权限功能&#xff08;服务、模板、数据集、数据源可进行后台权限分配&#xff09; 每个报表可以独立设置权限&#xff0c;通过自定义分配&#xff0c;给不同的人员分配不同的权限。 2.报表新增执行模式 可选择首次报表加载数据为最新数据和历…...

MyBatis-Plus-扩展操作(3)

3.扩展 代码生成 逻辑删除 枚举处理器 json处理器 配置加密 分页插件 3.1 代码生成 https://blog.csdn.net/weixin_41957626/article/details/132651552 下载下面的插件 红色的是刚刚生成的。 我觉得不如官方的那个好用&#xff0c;唯一的好处就是勾选的选项能够看的懂得。…...

react 中 antd 的 样式和 tailwind 样式冲突

问题原因&#xff1a;在使用 tailwindcss 时&#xff0c;会导入大量的 tailwindcss 默认属性&#xff0c;而默认样式中 button, [typebutton] 包含了 background-color: transparent; 从而导致 antd Button 按钮背景色变成透明。解决办法&#xff1a;禁止 tailwindcss 的默认属…...

获取该虚拟机的所有权失败,主机上的某个应用程序正在使用该虚拟机

点击“openstack-controller”虚机 打开出现如下错误&#xff0c;点击“获取所有权” 点击“取消” 这时候不要删除虚拟机&#xff0c;这种错误一般是由于虚拟机没有正常关闭引起的。 找到openstack-controller的虚拟磁盘文件及配置文件存放的位置&#xff0c;删除openstack-…...

流式Markdown解析器:实现实时渲染与性能优化的核心技术

1. 项目概述&#xff1a;一个实时渲染的Markdown流式解析器如果你经常需要处理动态生成的Markdown内容&#xff0c;比如从API接口实时获取、从数据库流式读取&#xff0c;或者构建一个支持用户边输入边预览的编辑器&#xff0c;那你一定遇到过这样的痛点&#xff1a;传统的Mark…...

多Agent协作是趋势,但谁来管这些Agent

如果你最近参加过AI相关的技术沙龙或者行业峰会&#xff0c;大概率会听到一个词&#xff1a;多Agent协作。简单说就是&#xff0c;不是一个AI帮你干完所有事&#xff0c;而是多个AI各司其职、互相配合。比如一个Agent负责理解需求&#xff0c;一个Agent负责写代码&#xff0c;一…...

JiT源码深度剖析:从Denoiser到Transformer的完整实现

JiT源码深度剖析&#xff1a;从Denoiser到Transformer的完整实现 【免费下载链接】JiT PyTorch implementation of JiT https://arxiv.org/abs/2511.13720 项目地址: https://gitcode.com/gh_mirrors/jit8/JiT JiT&#xff08;Just image Transformer&#xff09;是一个…...

福特技术复兴:用户体验整合如何重塑汽车行业竞争格局

1. 福特的技术复兴之路&#xff1a;一次深度拆解十年前&#xff0c;当大多数传统汽车制造商还在为金融危机后的生存而挣扎时&#xff0c;福特汽车做出了一个在当时看来颇具前瞻性的决定&#xff1a;将技术&#xff0c;而非仅仅是马力或造型&#xff0c;作为品牌复兴的核心驱动力…...

NotebookLM无法识别PDF表格?手把手复现Google Research 2024最新LayoutParser适配方案(附可运行Colab脚本)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM无法识别PDF表格&#xff1f;手把手复现Google Research 2024最新LayoutParser适配方案&#xff08;附可运行Colab脚本&#xff09; NotebookLM 默认使用轻量级 PDF 解析器&#xff08;如 Py…...

Elasticsearch管理利器:es-client全方位指南与实战技巧

Elasticsearch管理利器&#xff1a;es-client全方位指南与实战技巧 【免费下载链接】es-client elasticsearch客户端&#xff0c;issue请前往码云&#xff1a;https://gitee.com/qiaoshengda/es-client 项目地址: https://gitcode.com/gh_mirrors/es/es-client 你是否曾…...

NotebookLM如何重构你的NLP工作流,72小时实现从零标注到可部署模型闭环

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM如何重构你的NLP工作流&#xff0c;72小时实现从零标注到可部署模型闭环 NotebookLM 是 Google 推出的实验性 AI 助手&#xff0c;专为结构化文档理解与知识驱动建模而设计。它并非传统 LLM …...

手把手教你用Intel System Debugger和DCI OOB盒子抓取开机日志(附CSME解码文件获取指南)

硬件调试实战&#xff1a;Intel System Debugger与DCI OOB盒子的替代方案指南 当主板开机卡死在LOGO界面或出现花屏时&#xff0c;传统调试工具链的突然失效往往让工程师陷入困境。我曾亲眼见过一位同事因为误改GDK7开发板的BIOS设置&#xff0c;导致价值上万的DCI-USB3调试线缆…...

基于python-telegram-bot的审批按钮系统设计与实现

1. 项目概述&#xff1a;一个为Telegram机器人设计的审批按钮系统如果你在团队协作、内容审核或者自动化流程中&#xff0c;经常需要通过Telegram机器人来处理“同意”或“拒绝”这类审批请求&#xff0c;那么你很可能遇到过这样的困扰&#xff1a;用户发来一条需要审核的消息&…...

Degrees of Lewdity汉化版全攻略:从入门到精通的四象限实战指南

Degrees of Lewdity汉化版全攻略&#xff1a;从入门到精通的四象限实战指南 价值定位&#xff1a;为什么选择模组化汉化方案&#xff1f; 你是否曾因语言障碍与心仪的开源游戏失之交臂&#xff1f;Degrees of Lewdity作为一款备受欢迎的开源游戏&#xff0c;其丰富的剧情和自…...