软考架构设计师高分论文(微服务)

本文介绍了将单体架构改造为微服务架构的在线问诊互联网医院平台项目,通过服务拆分、Nacos服务治理和Hystrix的限流熔断策略,提高了系统的稳定性和可扩展性。项目自2020年上线以来运行稳定,服务了大量医生和患者,验证了微服务架构的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人于2019年3月参与了某公司的核心项目“在线问诊互联网医院平台”,该平台以在线问诊为核心,分为用户信息管理、病历管理、推荐处方、药品配送等功能。本人在该项目中担任架构师职位,主要负责整体架构设计和技术选型。本文以该项目为例,主要讨论微服务架构设计在项目中的具体应用。首先根据业务领域和技术实现不同,本着单一职责的原则将系统划分众多服务,解决了业务模块高度耦合的难题,其次拆分后的服务利用NACOS进行服务治理来解决服务不好管理,配置文件分散的问题,最后通过Netflix Hystrix实现服务的熔断降级。防止因某个服务异常从而导致雪崩效应,使整条服务链宕机的问题,整个系统历时1年半,于2020年九月上线,至今已稳定运行1年,深受用户好评。

如今信息化时代,信息技术的快速发展以及“互联网+”概念的大力推进,为医疗行业的改革提供了一个新的探索方向,在这样的市场时代背景下,各种数据呈现爆炸式的增长,在线问诊系统开发也开始逐渐流行,也逐渐出现利用计算机辅助诊断的案例,这种模式有效的实现线下患者分流,进一步减轻当前中国医疗健康系统的负担。我司在医疗行业深耕十几载,有良好的医疗基础,又拿下了互联网医院牌照,未来发展有巨大潜能,我司旧系统经过两年时间运行也累计了大量医疗数据,为未来智慧医疗打下坚实的基础,该项目主要以患者问诊,医生接诊为主要功能,凭借问诊效率高,无论身在何处都能为患者提供便捷的优质医疗资源的优势让业务快速扩张,用户量飞速增加,从而也使需求更加快速变化,以前的单体项目显然已逐渐无法适应我司对软件的要求,微服务改造刻不容缓。本项目组全体成员共41人,我在项目中担任系统架构师职务,我主要负责整体架构设计、技术选型、服务拆分等工作。


传统单体架构与微服务架构相比,以往的单体项目所有的功能模块都在一个进程中运行,各模块的之间的耦合度过高,关系十分紧密,基本是单个模块出问题,可能导致整个项目崩溃,各功能模块的扩展性很差,基本对某个功能模块进行扩展,经过调研,我们的系统将采用微服务的架构来进行开发,微服务架构主要有以下特点,1.微服务把每个职责单一的功能放在一个独立的服务中。2.每个服务允许在一个独立的进程中。3.每个服务有自己的数据存储,实际上,每个服务应该有自己独享的数据库、缓存、消息队列等资源。4.每个服务有多个实例在运行,每个实例可以运行在容器化平台内,达到平滑扩展伸缩的效果。5.每个服务应该有自己的运营平台,以及独享的运营人员,这包括技术运维和业务运营人员。每个服务都高度自治,内部的变化对外透明。6.每个服务都可以根据性能需求独立的进行水平伸缩。本文着重从微服务拆分,微服务治理,限流熔断在本项目中的具体应用效果来进行介绍。

一、微服务拆分
通过分析核心业务系统的需求,我们拆分服务秉承一个原则,就是不同微服务的边界明确,不重复开发相同的业务,也就是职责单一原则。并且我们对数据库也进行来拆分,要求每一个服务都有自己的的数据库,不能直接访问其他服务的数据库。每个微服务可以将自己的业务暴露成服务,供其他服务进行调用。最终我们将核心的业务系统拆分为:网关服务、认证中心服务、权限服务、用户中心服务、IM服务、支付服务作为基础服务层。诊疗服务、订单服务、处方服务、病例服务作为业务服务层。定时服务、文件服务、日志服务、分布式事务服务作为工具服务层。每个业务模块都是根据业务领域进行划分,同一个业务领域下因质量属性要求不同需要划分为两个服务,如认证服务和用户服务,由于认证服务是一个比较独立的模块,他只处理用户的登陆登出,作为应用的入口他的可用性和性能的质量属性要求相对较高。用户服务宕机不会影响认证服务。用户可以就登陆系统操作订单,问诊等功能,使我们的系统容错率更高。

二、微服务的治理
由于原单体项目被拆分为众多服务,那服务消费者如何获取服务提供者的具体调用地址,因此引入了Nacos注册中心,每一个服务启动时都需要在注册中心进行服务注册,注册中心会保存这些信息如ip和端口的信息,所以每次服务消费者想要调用某一个服务的时候都可以在注册中心,通过服务名查询到对应服务的IP端口地址,来进行服务访问,服务消费者可以通过负载均衡的算法,从同类型服务列表中选择一个服务来进行远程调用,同时我们要求服务提供者每隔30秒向注册中心发送心跳请求,来确认其健康状态。如果注册中心感知到服务异常就会将其剔除。保证就算有异常服务我们还是能快速发现使其下线,保证系统的可用性,同时对于我们这么多服务的配置文件,我们也采用了nacos的配置中心来进行管理,比较好的一点支持动态配置,在某些功能的切换上面,比如:验证码单日条数的限制,日志的开关,我们都不用让服务重新发版,这也降低了在修改代码和发版过程中人为造成错误的风险。

三、限流熔断
在我们需求分析中,发现诊疗服务,依赖于IM服务、处方服务、订单服务,而处方服务和订单服务又依赖于其他服务,这样下去调用链路很长,也是我们的核心业务,当诊疗服务的链路上有几个调用的子服务宕机或者延迟较高的话,会导致请求被堵住,堵住的请求会消耗掉服务器的资源,当这些请求越来越多,服务来不及处理,慢慢的会导致其他的请求同样无法处理,最后导致整个业务系统卡顿乃至崩溃,调研发现目前最常用的服务依赖保护是熔断和限流,我们通过Hystrix实现了断路器模式,当每个服务节点发生故障之后,通过断路器的故障监控,向调用方,返回一个符合我们预期的备选响应,还不是长时间的等待服务响应,这样保证了服务在整个调用链不会长时间的等待响应,不必要的占用资源,防止故障在整个微服务系统中蔓延,最后乃至雪崩的情况发生。

项目在2020年9月份通过了最终验收,上线,至今以来系统运行也非常稳定,已经连续运行一年多,已有4W以上的医生在平台注册,百万以上的患者得到服务,获得来客户一致的好评,在系统管理上每个服务都有专门的人来管理,提升了产品的体验,也提升了服务客户的质量和效率。同时每次发版也不会对整个系统发版,而是对某个修改的服务发版,面对需求也能快速响应,相比于之前的单体项目,系统逻辑更加清晰,面对日益增加的用户量我们也能通过各个服务的水平扩容来提升系统的负载。但是微服务改造之后,产生了众多服务,运维的开销及成本增加,后续会通过搭建devops平台,运维人员需要写好自动化运维脚本,通过自动化工具可以实现自动发布和监控,可以降低维护成本,提升上线交付效率和质量。

实践证明系统平稳运行与采用来合适的架构风格密不可分,经过此次微服务架构的应用方法,也看到不足之后,在未来还会不断更新知识,完善本系统的架构设计,使整个系统更加合理,更有效的服务于医生和患者。

<think>好的,我现在需要处理用户关于系统架构设计师高分论文的查询。用户提到想查找这些论文来学习设计方法和最佳实践,尤其是IT系统设计方面的内容。首先,我要回顾提供的四个引用内容,看看它们各自涉及哪些主题和方法。 引用1讨论的是基于架构的件设计方法,分为需求、设计、实现三个阶段,使用了UML的4+1视图模型。这可能是一个结构化的方法,适合详细说明设计流程。引用2提到企业集成平台,使用了J2EE、Web Service等技术,强调数据格式和跨平台集成。引用3是关于分布式架构设计,涉及微服务、数据一致性,以及技术栈的选择。引用4则介绍了敏捷开发方法,特别是Scrum,用于快速交付和应对需求变化。 接下来,我需要确定用户的需求。他们可能正在准备系统架构设计师试,或者在实际项目中寻求最佳实践。高分论文通常涵盖方法论、案例分析和解决方案,因此回答应结构清晰,分点列出关键设计方法,并结合引用中的例子。 然后,要确保回答符合之前的指令:使用中文,正确应用LaTeX格式,生成相关问题。同时,引用需要自然地附在相关段落末尾。比如,当提到架构设计阶段时,引用1的相关部分应标注。 可能需要强调每个方法的核心要点,如需求阶段的用户访谈和原型设计,架构阶段的4+1视图,实现阶段的构件开发。此外,分布式系统中的技术选型(如J2EE、微服务)和数据一致性方法也很重要,需引用3和2。敏捷方法在需求不确定时的应用,引用4。 最后,生成的相关问题应围绕用户可能进一步探索的方向,如具体设计方法的应用、技术选型量、案例研究或论文写作技巧。确保问题覆盖不同方面,帮助用户深入挖掘所需信息。 需要检查是否符合所有格式要求,尤其是数学表达式是否正确使用$...$,但根据当前内容,可能数学公式较少,但如果有提及性能指标或其他计算,需正确应用。例如,如果提到负载均衡算法,可能需要公式,但当前引用中没有,所以可能不需要。 总结回答结构:分点介绍设计方法,每点结合引用案例,最后列出相关问题。确保引用标注正确,回答自然流畅,信息准确。</think>### 系统架构设计师高分论文分析与IT系统设计方法 系统架构设计师高分论文的核心价值在于提供方法论框架、技术选型依据和实战经验总结。结合引用内容,以下是关键设计方法与研究方向的总结: --- #### 一、典型架构设计方法论 1. **基于架构的件设计方法(ABSD)** - **架构需求阶段**:通过用户访谈、问卷调查、原型构造获取需求,注重非功能性需求(如性能、安全性)的挖掘[^1]。 - **架构设计阶段**:采用UML的**4+1视图模型**(逻辑视图、开发视图、进程视图、物理视图+场景视图)进行系统建模,例如逻辑视图描述功能模块关系,物理视图定义部署架构[^1]。 - **架构实现阶段**:通过构件开发与组装实现系统,例如利用微服务拆分复杂模块并独立部署[^3]。 2. **分布式架构设计** - **技术栈选择**:根据跨平台需求选择J2EE、Web Service等技术,结合XML/JSON实现数据交换[^2]。 - **数据一致性保障**:采用分布式事务协议(如两阶段提交)或最终一致性模型(如事件溯源)[^3]。 - **性能与可靠性**:通过微服务架构实现水平扩展,结合负载均衡(如$Load = \frac{\sum Request}{Server\ Count}$)优化资源利用率[^3]。 --- #### 二、关键技术实践 1. **企业集成平台设计** - **数据格式标准化**:统一采用XML/JSON降低异构系统集成复杂度[^2]。 - **服务治理**:基于ESB(企业服务总线)实现服务注册、发现与监控[^2]。 2. **敏捷开发与架构演进** - **Scrum方法**:通过迭代开发快速响应需求变化,例如两周一个冲刺周期交付核心功能[^4]。 - **遗留系统迁移**:采用分段上线策略,控制服务中断时间(如<1周)[^4]。 --- #### 三、高分论文研究要点 1. **案例驱动分析**:结合具体项目背景(如商业银行集成平台、资金管理系统)说明技术选型逻辑[^3]。 2. **问题-解决方案结构**:明确架构设计中的挑战(如数据一致性、跨平台兼容性)及应对措施[^3][^4]。 3. **量化成果展示**:通过性能指标(如TPS提升率)、用户满意度数据增强说服力[^1][^3]。 ---
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值