【系统架构师】-案例篇(九)容器化、CDN与微服务

某汽车制造企业提出开发一个车联网系统。该系统釆用微服务架构,将系统功能分解为多个松散耦合且可独立部署的较小组件或服务。最终设计的系统包括了车辆信息服务、车辆监控服务、车辆控制服务、人车授权服务、资源聚合服务、车机互联服务等。

在系统上线之后,由于功能完善、界面新颖,吸引了大量新用户关注尝鲜,很快系统性能出现了瓶颈。车辆监控服务的情况最严重,实时保存车辆的位置和状态导致大量数据库写操作;网络带宽也严重不足。对于这个情况,张工提出增加服务器资源的投入,而王工提出采用集群和云原生的技术。

经过技术组内多次讨论,决定采纳了王工的建议。

【问题1】

技术组经过研究发现,服务器的资源并没有充分利用,部分服务器满载,部分服务器还是很空闲的。王工提出采用容器技术解决该问题。请用300字以内的文字说明容器技术的优势,以及为什么能解决这个问题?

容器技术具有以下优势:

(1)敏捷性:容器技术可以快速部署和启动应用程序,因为容器镜像只需要包含应用程序和其依赖项,无需模拟整个操作系统环境。这减少了部署时间、提高了开发效率并降低了计算资源需求。

(2)弹性:容器技术具有很好的弹性,可以根据需求自动扩展或缩减容器实例。这种弹性扩展和缩减的能力使得容器技术能够有效地处理峰值流量和应对突发情况。

(3)可移植性:容器技术具有很好的可移植性,因为容器镜像可以在不同的平台和操作系统上运行。

(4)系统利用率高:因为容器可以在同一个操作系统内同时运行多个应用程序。

由于容器技术采用了虚拟化技术和编排技术,使得系统资源的利用率得到最大化,同时也减少了人工管理和维护的成本和难度。因为它们不需要模拟整个计算机硬件环境而节省资源,并且可以自动管理和调度容器的运行。

【问题2】

由于大量车辆同时在线并实时写入,系统和网络的资源严重不足。在这种情况下王工提出采用CDN技术解决该问题。请用300字以内的文字介绍CDN技术并说明为什么能解决该问题。

CDN是内容分发网络技术,目前已经是属于云服务的一个基本件。一个系统配置了CDN以后,当终端用户访问这个系统的时候,可以被调度到离用户网络上最近的边缘节点 ,从而大大减低核心节点的资源损耗,还能提高用户访问的响应速度。

在本系统的情况中,大量车辆同时在线会占用大量网络带宽,可以把访问在靠近用户的边缘节点就近处理,从而保护系统核心节点的网络带宽,防止整个系统阻塞。而实时保存车辆的位置和状态导致大量数据库写操作,可以通过边缘节点的内存数据库暂存车辆的信息,计算完成的最终信息批量同步到主数据库。

因此,采用CDN技术可以妥善解决系统和网络的资源严重不足的问题。(注意总结性话语)

【问题3】

请用100字以内的文字说明什么是微服务架构,并用 300字以内的文字解释基于微服务的系统与传统的单体式系统相比的优势和带来的挑战。

微服务架构是一种新型的架构模式,将一个大型的单个应用或服务拆分成多个微服务,每个服务运行在其独立的进程内,服务之间相互协调,互相配置,为用户提供最终的价值。
基于微服务的系统包含以下优势:

(1)复杂应用解耦。微服务架构将单一模块应用分解为多个微服务,同时保持总体功能不变。

(2)独立。微服务在系统软件生命周期中是独立开发、测试及部署的。

(3)技术选型灵活。每个开发团队可根据自身应用的业务需求发展状况选择合适的体系架构与技术。

(4)容错。故障会被隔离在单个服务中。

(5)松耦合,易扩展。

基于微服务的系统带来的挑战:

(1)分布式特性。分布式系统的编程难度更大,因为远程调用慢,而且总存在失败的风险;

(2)最终一致性。分布式系统的强一致性很难,开发人员需要处理最终一致性的问题;

(3)运维复杂性:需要成熟的运维团队,管理很多需要重新部署的服务。

相关推荐
.生产的驴19 分钟前
SpringCloud OpenFeign用户转发在请求头中添加用户信息 微服务内部调用
spring boot·后端·spring·spring cloud·微服务·架构
喵叔哟21 分钟前
16. 【.NET 8 实战--孢子记账--从单体到微服务】--汇率获取定时器
微服务·oracle·.net
Smile丶凉轩27 分钟前
微服务即时通讯系统的实现(服务端)----(1)
c++·git·微服务·github
运维&陈同学2 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
J老熊3 小时前
JavaFX:简介、使用场景、常见问题及对比其他框架分析
java·开发语言·后端·面试·系统架构·软件工程
猿java3 小时前
什么是 Hystrix?它的工作原理是什么?
java·微服务·面试
天天扭码10 小时前
五天SpringCloud计划——DAY2之单体架构和微服务架构的选择和转换原则
java·spring cloud·微服务·架构
凡人的AI工具箱10 小时前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang
运维&陈同学11 小时前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
架构师Wu老七18 小时前
【软考】系统架构设计师-信息系统基础
系统架构·软考·系统架构设计师·信息系统基础