文章插图
对于开发人员来说 , 我们每天都在用技术 。但你要知道 , 我们写的代码 , 其实只是系统的一小部分 , 我们了解的技术 , 也只是系统用到的一小部分 。要深入掌握技术架构 , 我们就需要了解整体的系统 。
面对一个复杂的系统 , 我想你可能经常会有以下困扰:
不清楚系统整体的处理过程 , 当系统出问题时 , 不知道如何有针对性地去排查问题 。系统设计时 , 经常忽视非业务性功能的需求 , 也不清楚如何实现这些目标 , 经常是付出惨痛的教训后 , 才去亡羊补牢 。不知你是否还记得 , 在之前的文章中 , 我已经说过 , 技术架构是从物理层面定义系统 , 并保障系统的稳定运行 。那么今天 , 我会先分析下系统在物理上由哪些部分组成 , 让你可以从全局的角度看一个系统;然后再和你一起讨论 , 技术架构会面临哪些软硬件的挑战 , 以及它都有哪些目标 , 让你能够深入地了解技术架构 。
系统的物理模型对于大部分开发人员来说 , 我们主要的工作是写业务相关的代码 , 保证业务逻辑正确、业务数据准确 , 然后 , 这些业务代码经过打包部署后 , 变成实际可运行的应用 。但我们写的代码只是系统的冰山一角 , 为了保证应用能正常运行 , 我们需要从端到端系统的角度进行分析 。
我们先看下一个系统的具体组成 , 这里我为你提供了一个简化的系统物理模型 , 你可以了解一个系统大致包含哪些部分 。
从用户请求的处理过程来看 , 系统主要包括五大部分 。
首先是接入系统 , 它负责接收用户的请求 , 然后把用户的请求分发到某个 Web 服务器进行处理 , 接入系统主要包括 DNS 域名解析、负载均衡、Web 服务器这些组件 。
接下来 , Web 服务器会把请求交给应用系统进行处理 。一般来说 , 我们是基于某个开发框架来开发应用的 , 比如 Java 应用一般是基于 Spring MVC 框架 。
这个时候 , 开发框架首先会介入请求的处理 , 比如对 HTTP 协议进行解析 , 然后根据请求的 URL 和业务参数 , 转给我们写的业务方法 。接下来 , 我们的应用代码 , 会调用开发语言提供的库和各种第三方的库 , 比如 JDK 和 Log4j , 一起完成业务逻辑处理 。在这里 , 我们会把开发框架、应用代码 , 还有这些库打包在一起 , 组成一个应用系统 , 作为独立的进程在Web 服务器中进行部署和运行 。
到这里 , 整个系统要做的事情就完了吗?
还没有呢 , 在我们的应用系统底下 , 还有基础平台 , 它由好几个部分组成:首先是各个语言的运行时 , 比如说 JVM;然后是容器或虚拟机;下面还有操作系统;最底下就是硬件和网络 。
接入系统、应用系统、基础平台就构成一个最简单的系统 。
在大多数情况下 , 应用系统还要借助大量外部的中间件来实现功能和落地数据 , 比如数据库、缓存、消息队列 , 以及 RPC 通讯框架等等 。这里 , 我统称它们为核心组件 , 它们也是系统不可缺少的一部分 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- js中计时器的用法 javascript计时器频率设置
- 健身项目“方向标”
- 男人健身的7个题目
- 灭火器维护检查项目
- java获取checkbox勾选的值 获取选中的checkbox的值
- 怎样锻炼 让腿部布满气力
- 产品推广计划方案模板 项目营销方案
- 简单的java程序代码 java大小写转换函数
- 大学团建活动有哪些项目
- java中的对象和类理解 java对象是什么意思