《基于 Kafka + Flink + ES 实现危急值处理措施推荐和范围校准》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗
🌻 近期刚转战 CSDN,会严格把控文章质量,绝不滥竽充数,欢迎多多交流。👍
文章目录
- 写在前面的话
- 背景技术
- 发明目的
- 具体方案
- 一、前置环境准备
- 二、核心服务实现
- 三、与用户门户的交互实现
- 四、开发危急值分析模块
- 五、开发危急值医务管理模块
- 危急值发送流程
- **危急值处理流程**
- 方案特征
- 总结陈词
写在前面的话
本篇文章分享一下博主所在公司的危急值处理措施推荐和范围校准的实现方案。
主要是基于 Kafka + Flink + Elasticsearch 实现,由于涉及安全问题,内容以方案介绍为主,有需要探讨的可以留言。
好,让我们开始。
背景技术
危急值是指当这种检验、检查结果出现时,表明患者可能正处于生命危险的边缘状态,临床医生需要及时得到检验、检查信息,迅速给予患者有效的干预措施或治疗,就可能挽救患者生命。危急值信息可供临床医生对生命处于危险边缘状态患者采取及时、有效的治疗,避免病人因意外发生,出现严重后果,失去最佳抢救机会。
危急值报告制度的制定与实施,能有效增强医技工作人员的主动性和责任心,提高医技工作人员的理论水平,增强医技人员主动参与临床诊断的服务意识,促进临床、医技科室之间的有效沟通与合作。危急值管理是医院管理的重要组成部分,危急值的快速甄别、确认、发布、及时接收以及对该流程监控、分析等是系统信息化管理的目标与方向。
现目前大多危急值管理系统存在如下问题:
1、各类危急值检验项目按照固定的参考范围进行危急值判定,不支持动态调整项目范围的上限和下限,往往只是简单粗暴的进行数值比对,缺乏科学的范围判定和校准方式,造成了不符合临床实际的“假”危急值频繁通知,对临床医护人员工作产生较大影响;
2、医护人员针对危急值做出的干预措施,只是单纯的填写措施并反馈医技部门,没有与病程和护理记录产生交互,处理过程也没有形成记忆和管理,针对相同的情形的工作,往往需要花费重复工作和时间,也容易产生偏差;
3、危急值涉及环节较广,没有统一的流程化管理,容易产生环节缺失,未形成完整闭环,同时,整个过程缺少环节监控、日志跟踪、和异常处理方案,也缺少全院统计汇总页面,无法提供整体改善医院危急值的方案;
发明目的
本专利发明的目的是基于 Kafka + Flink + Elasticsearch 等技术,在危急值全流程管理过程中,实现一种科学校准危急值判定范围、以及对危急值处理措施进行智能推荐的方案,以解决现目前危急值流程管理中存在的诸如危急值判定标准不准确、处理措施数据未利用、全院危急值优化机制不完善等问题,进而优化危急值流程、提升危急值处理效率、形成完整闭环追踪,最终建设完善的危急值全流程管理系统。
1、建设“假”危急值处理方案,防止提醒过于频繁,不断校准危急值项目的合理范围;
2、针对日常危急值的处理措施进行存储,形成记忆,在危急值到来时,可以给予医护人员多样化提示,充当填写助手的作用;
3、基于消息中心事件驱动机制,建设完整危急值处理流程,尽可能包含临床业务场景的各个环节,由数据中心负责完整危急值信息存储,提供闭环展示和数据查询接口;收集各科室的危急值闭环数据,生成定向指标数据,方便定期追踪、分析、评价危急值指标,督导各科室发现并完善自身危急值处理,提升全院危急值处理效率;
具体方案
本方案是基于 Kafka + Flink + Elasticsearch 实现危急值范围校准和措施推荐,具体技术方案实现如下。
一、前置环境准备
1、部署 Kafka 环境,程序引入 Kafka 相关依赖,并进行相关配置与功能集成,定义“危急值发送”和“危急值反馈”事件,同时配置事件的消息入参格式与XSD校验文本,这两个事件将作为 Kafka 的两个主题 Topic,其中,Kafka 用于充当消息中间件,负责提供生产者和消费者的协作模式;
2、部署 Elasticsearch 环境,程序引入 Elasticsearch 相关依赖,并进行相关配置与功能集成,Elasticsearch 定义若干索引结构,将作为危急值原始数据、关联数据、运算结果等内容的存储,并利用 Elasticsearch 特性,进行统计分析;
3、部署 Flink 环境,程序引入 Flink 相关依赖,并进行相关配置与功能集成,Flink 充当呈上启下的衔接角色,一方面用于消费 Kafka 投递的主题消息,另一方面,通过相关 API,将数据运算后,输出存储到 Elasticsearch 当中;
二、核心服务实现
1、提供对外的消息生产者接口
开发消息中心生产者接口,并对外部系统开放,该接口可以用于“危急值发送”和“危急值反馈”这两个场景。
主要逻辑是,针对消息入参进行合理性校验、解析和处理,再通过调用 Kafka API 进行消息发送,利用生产者单例去完成消息发送。
发送的主题 Topic 为“危急值发送”或“危急值反馈”。
2、利用 Flink 消费 Kafka
利用 Flink 的** **Flink Source API,添加 Kafka 作为数据来源,并订阅“危急值发送”和“危急值反馈”这两个 Topic。
针对拉取到的消息,添加消息消费处理的代码块。
3、利用 Flink 加工流数据
3.1、危急值发送流程
针对拉取到的 Kafka 的“危急值发送”Topic 主题数据,进行相应加工处理。
1)利用正则表达式提取消息入参中危急值核心属性内容,包含但不限于危急值ID、报告ID、患者ID、就诊ID等,识别出各关键属性的code和value,并组装为 Map 结构;
2)利用上述关键信息,从 Oracle 中提取危急值业务关联的报告信息、患者信息、就诊信息,以及上述内容的历史信息,从 Elasticsearch 中提取危急值区间分布信息、危急值处理措施分布等信息,将这些内容组装,用于辅助分析;
3)利用 Flink Transform API 对 Map 数据进行综合加工处理,得到相关结果;
4)危急值发送过程中,关于范围校准和措施推荐的相关运算如下:
a、获取该项目危急值的基本信息,判断该危急值是否符合当前危急值的上限和下限;
b、获取该项目危急值的区间分布情况,判断该危急值所属的区间分布,做出更新,并将结果组装;
c、获取该项目危急值的历史处理措施分布情况,并通过运算得出,按不同维度的不同措施出现的频次排列,再将结果组装;
d、获取该项目危急值历史出现时,其他同样异常的项目,并通过运算得出,这些项目和当前危急值项目之间存在的联动关系;
e、获取该项目危急值对应项目的历史值,做出趋势分析,并将结果组装;
f、获取该项目危急值的其他关联和扩展信息,用于辅助分析,并将结果组装;
g、将原始危急值数据存入Elasticsearch,再将第3步的所有运算结果进行组装,进入下一环节,充当填写助手的作用。
3.2、危急值处理流程
针对拉取到的 Kafka 的“危急值处理”Topic 主题数据,进行相应加工处理。
1)利用正则表达式提取消息入参中危急值处理的属性内容,包含但不限于危急值ID、处理方式、处理措施、处理人等,识别出各关键属性的code和value,并组装为 Map 结构;
2)同危急值发送,利用上述关键信息,从 Oracle 和 Elasticsearch 中提取关联信息,用于辅助分析
3)利用 Flink Transform API 对 Map 数据进行综合加工处理,得到相关结果;
4)危急值处理过程中,关于范围校准和措施推荐的相关运算如下:
a、若医生针对该危急值给予了正常的干预措施,则代表危急值触发范围的可信度增加,首先更新该项目危急值出现的频次记录信息;然后,增加该项目组值此时可以更新危急值范围区间数据,代表某项目出现危急值的范围区间更加精准,本区间如果本次危急值属于原有出现危急值的区间内,则增加区间出现次数,若本次危急值超出原有出现危急值的区间,则新增区间数据,扩大区间范围,并进行次数记录;最后,将医生的处理措施和危急值数值,关联存储到措施记忆索引中,该索引记录包含但不限于如下内容:不同项目所使用的处理措施,属于哪个区间,历史触发数值包含哪些,关联患者的当前和历史的报告、就诊、危急值等信息。
b、若医生针对该危急值给予了异常处理,例如点击了反馈疑问按钮,则代表危急值触发范围的可信度降低,首先插入危急值关键信息到反馈疑问索引中;然后,往危急值范围区间索引中也插入相关异常数据;最后,也将更新处理措施索引,反馈疑问也属于处理措施的一个环节;这些疑问内容都将在提供相应统计分析页面,人工进行最后裁定,范围是否变更;
4、利用 Flink 输出到 Elasticsearch
利用 Flink Elasticsearch API,添加 ElasticsearchSink 作为结果输出,将上一步计算得出的结果,按照不同维度存储到ES的不同索引结构。
包含但不下于如下索引:危急值原始数据索引、危急值扩展数据索引、危急值区间频次分布索引、危急值处理措施分布索引等。
三、与用户门户的交互实现
3.1、危急值发送流程
经过核心服务的数据处理,可以调用用户统一门户的后端接口,再利用 WebSocket 完成前后端消息推送,或由核心服务直接集成 WebSocket 负责与门户前端交互,最终在用户门户前端展示出危急值霸屏弹窗界面。
霸屏弹窗上医生除了看到危急值对应基本信息、报告信息、患者信息外,还可以填写干预措施提交,或点击反馈疑问按钮。
霸屏弹窗上将展示如下填报助手信息:
a、该项目危急值的各项处理措施出现的频次,医生可以快速点击复用;
b、该项目不同触发区间出现危急值的频次,作为医生确认危急值的参考依据;
c、该项目的历史趋势对比分析图,以及该项目出现危急值时,其他产生危急值时,同样异常的项目信息出现的频次;
d、其他历史参考信息,例如就诊历史、报告历史、危急值历史等;
3.2、危急值处理流程
医生针对危急值霸屏弹窗做出处理,将调用统一门户后端接口,触发 Kafka 的“危急值处理”Topic 主题数据,进入核心服务的危急值处理环节。
医生有两种处理模式,可以填写干预措施提交,或点击反馈疑问按钮,两种方式都可以结束处理流程。
四、开发危急值分析模块
6.1、设置定时服务,利用聚合函数对ES的数据进行二次加工处理,处理结果继续存储在新的索引空间下。
6.2、开发前端BI界面,将加工前后的危急值指标数据进行展示,并给出分析提示。
1)针对参考范围给出分析判定结果,允许人工最后确认校准范围是否改动。
2)针对处理措施给出推荐分析,针对不同处理措施,按照使用次数、处理路径、对应值范围,以及历史项目趋势、关联其他并发项目、历史诊病信息等内容,给出各项统计、指引、分析。
五、开发危急值医务管理模块
1)定义危急值评价指标:医务科应定义危急值评价指标,如:处理率%,平均处理时常h,及时处理率/24小时处理率%,患者六小时复诊率%,危急值处理总数等;
2)危急值统计:医务科需要定期对各科室危急值管理制度执行情况进行督导检查、追踪、分析,定期评价危急值报告、处置的及时性。在医务门户的危急值组件,汇聚展示各科室的危急值数据,按科室和医生两个维度,展示各类指标的排行榜和详情数据,并支持导出报表一览展示数据,定期比对全院不同时间点的指标对比,制定全院危急值阶段改善计划;
3)危急值反馈:医务科需要根据临床实际情况对危急值项目及危急值进行更新调整,将科室危急值管理纳入科室医疗质量考核,在医务人员门户开发危急值反馈组件,统一收集、分析和处理这些反馈。
危急值发送流程
流程:LIS - 数据中心 - 生产者 - Kafka Source - Flink - 加工处理 - Elasticsearch
1、医技人员发现危急值情况时,检查(验)者首先要确认检查仪器、设备和检验过程是否正常,核查标本是否有错,操作是否正确,仪器传输是否有误,在确认临床及检查(验)过程各环节无异常的情况下,及时复查(影像科室可根据实际情况决定是否需要复查),如两次复查结果相同, 才可以将检查(验)结果发出。
2、检查(验)系统发出危急值后,将通过院内集成平台发起对数据中心危急值发送接口的调用,首先将进行危急值的存储,接着调用本方案中的消息中心生产者接口,投递“危急值发送”Topic 至 Kafka;
3、本方案的核心服务,将利用 Flink 订阅 Kafka 的危急值发送 Topic,并利用 Flink Transform API 对接收到的数据进行加工处理,形成需要的数据,再利用 Flink Elasticsearch API,添加 ElasticsearchSink 将结果输出到 Elasticsearch 相关索引中;
4、经过核心服务的数据处理,可以调用用户统一门户的后端接口,再利用 WebSocket 完成前后端消息推送,或由核心服务直接集成 WebSocket 负责与门户前端交互。最终在用户门户前端展示出危急值霸屏弹窗界面;
5、至此,发送流程结束。
危急值处理流程
流程:门户 - 数据中心 - 生产者 - Kafka Source - Flink - 加工处理 - Elasticsearch
1、医生用户在日常使用门户系统过程中,若收到危急值发送通知,则会以霸屏弹窗的形式进行展示;
2、医生根据患者的危急值信息,以及报告信息、就诊信息等内容进行判断,若确认符合危急值范畴,则填写相应干预措施,触发数据中心的危急值处理逻辑;
3、数据中心首先更新危急值信息,然后将通过院内集成平台发起对检查(验)系统危急值发送接口的调用,紧接着调用本方案中的消息中心生产者接口,投递“危急值处理”Topic 至 Kafka;
4、本方案的核心服务,将利用 Flink 订阅 Kafka 的危急值处理 Topic,并利用 Flink Transform API 对接收到的数据进行加工处理,形成需要的数据,再利用 Flink Elasticsearch API,添加 ElasticsearchSink 将结果输出到 Elasticsearch 的相关索引中;
5、若第2步,医生判断该危急值属于误报,则点击“反馈疑问”按钮,将调用“医务管理模块”的错误问题上报接口,以便后续分析;
方案特征
1、基于 Kafka + Flink 组合实现,利用了大数据流式引擎技术的优势,针对危急值的发送和处理场景,实现高可靠、高效实时、高扩展性的数据加工,最终实现危急值范围校准和措施推荐的目的;
2、利用 Elasticsearch 存储多样化的指标运算结果,再利用 ES 的聚合函数功能对结果二次分析处理,整体方案扩展性和可重用性都获得较大的提升;
3、将消息中心事件驱动机制应用于危急值场景,为危急值闭环流程的关键节点建立消息事件,通过动态订阅的方式为事件指定订阅服务,流程清晰可插拔。以消息中心为枢纽建立完整危急值处理流程,尽可能覆盖实际业务场景的各个环节,提升业务覆盖面和人员参与度;
总结陈词
上文介绍了博主所在公司的《基于 Kafka + Flink + ES 实现危急值处理措施推荐和范围校准》方案。
💗 后续会逐步分享企业实际开发中的实战经验,有需要交流的可以联系博主。
相关文章:

《基于 Kafka + Flink + ES 实现危急值处理措施推荐和范围校准》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 近期刚转战 CSDN,会严格把控文章质量,绝不滥竽充数,欢迎多多交流。&am…...

计算机的进制转换
十进制:以0-9这九个数字组成。 二进制:由0和1两个数字组成。 八进制:由0-7数字组成,不存在8和9。 十六进制:由0-9和A-F组成。A-F对应的是10-15。 ____________ 十进制 1 2 3 4 5 6 7 8 9 10 二进制 0 1 10 11 1…...

String类(STL开始)
相信大家都知道STL在C中的重要性,作为其模板库中的一部分,包含了常见的数据结构和算法,是C的标准库 而我们今天要讲的String类(String底层是一个字符顺序数组的顺序表对象,可以归类为容器),其实…...

【数据结构】单链表:数据结构中的舞者,穿梭于理论与实践的舞池
欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 数据结构与算法 先赞后看,已成习惯 创作不易,多多支持! 一、链表的概念和结构 1.1 链表的概念 在上一篇文章中,我们了解了线性表(linear list),并且学习了其…...

html三级菜单
示例 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Menu Example</title> <link re…...

【人工智能】—基于成都市各区(市)县租房价格预测建模研究
引言 随着城市化进程的加速,人口流动日益频繁,租房市场作为城市生活的重要组成部分,其价格波动对居民生活质量和城市经济发展具有显著影响。成都市,作为中国西部地区的经济、文化、交通和科技中心,近年来吸引了大量人…...
3213. 最小代价构造字符串
Powered by:NEFU AB-IN Link 文章目录 3213. 最小代价构造字符串题意思路代码 3213. 最小代价构造字符串 题意 给你一个字符串 target、一个字符串数组 words 以及一个整数数组 costs,这两个数组长度相同。 设想一个空字符串 s。 你可以执行以下操作任意次数&a…...

提取重复数据
直接上控制台代码: Module Module1Sub Main()Console.WriteLine("请输入数据,以"",""相隔:")Dim str As String Console.ReadLineDim result From x In str.Split(",")Group By x Int…...
Go语言标准库之log和三方库zap
一、Log 1.1 logger基本使用 Go语言内置的log包实现了简单的日志服务。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|Fatalln)、和Panic系列(Panic|Panicf|Panicln)来…...

Linux:进程终止和进程替换
Linux:Linux:进程终止和进程替换 一、进程终止1.1 进程退出场景和创建退出方式 1.2 exit 和 _exit区别二、进程程序替换2.1 进程替换函数2.2 函数解释及命名解释函数解释命名解释 2.3 单进程程序替换(无子进程)2.3.1 带l函数进程替…...
使用Java实现异步消息处理与队列消费
使用Java实现异步消息处理与队列消费 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在现代软件系统中,处理异步消息和队列消费是常见的需求。通过…...

使用C++实现ATM系统,谈谈思路及代码实现
🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…...

相机光学(二十四)——CRA角度
CRA角度 0.参考资料1.什么是CRA角度2.为什么 CRA 会导致luma shading3.为什么 CRA 会导致color shading4.CRA相差过大的具体表现5.CRA Matching6.怎样选择sensor的CRA 0.参考资料 1.芯片CRA角度与镜头的匹配关系(一) 2.芯片CRA角度与镜头选型的匹配关…...

python函数和c的区别有哪些
Python有很多内置函数(build in function),不需要写头文件,Python还有很多强大的模块,需要时导入便可。C语言在这一点上远不及Python,大多时候都需要自己手动实现。 C语言中的函数,有着严格的顺…...

速看!这主食冻干评测极可能被商家恶意举报~PR、希喂和SC真实测评
我是一名专注于宠物健康的营养师,日常大部分时间都在与猫咪和狗狗为伴,对它们入店时的身体状况往往能迅速做出初步判断。当前,多数家养猫咪面临的肥胖和肝损伤问题尤为突出,尽管医疗干预能缓解病情,但要从根本上解决还…...

股票数据分析(K线图、均值图、MACD图、RSI图)--股票日数据
数据 数据是上证指数日行情数据,股票代码000002.sz,原始数据shdata示例如下: 读取数据: import numpy as np import pandas as pd import mplfinance as mpf import matplotlib.pyplot as plt from datetime import datetime imp…...
重写equals()方法为什么同时要重写hashcode()
equals()方法 equals()方法是Object类中的一个方法,在Object类中,equals等同于。 在不同的类中,往往会对equals()按需求进行重写。重写的目的都是:用于比较两个对象是否 "相等"。如果两个对象的内容相同,那…...

安全及应用(更新)
一、账号安全 1.1系统帐号清理 #查看/sbin/nologin结尾的文件并统计 [rootrootlocalhost ~]# grep /sbin/nologin$ /etc/passwd |wc -l 40#查看apache登录的shell [rootrootlocalhost ~]# grep apache /etc/passwd apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin#改变…...

Hadoop权威指南-读书笔记-03-Hadoop分布式文件系统
Hadoop权威指南-读书笔记 记录一下读这本书的时候觉得有意思或者重要的点~ 还是老样子~挑重点记录哈😁有兴趣的小伙伴可以去看看原著😊 第三章 Hadoop分布式文件系统 当数据集的大小超过一台独立的物理计算机的存储能力时,就有必要对它进行分…...
Rust入门实战 编写Minecraft启动器#2建立资源模型
首发于Enaium的个人博客 我们需要声明几个结构体来存储游戏的资源信息,之后我们需要将json文件解析成这几个结构体,所以我们需要添加serde依赖。 serde { version "1.0", features ["derive"] }资源相关asset.rs use serde::De…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...

《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...