聊聊微服务那些事

原创 中兴文档 2024-02-19 09:57

微服务作为一种软件架构,正得到越来越多的关注。微服务架构典型的应用行业有电商、游戏、直播、社交、物联网等等。具体的案例应用有淘宝、支付宝、微信、微博等应用,新兴案例应用有拼多多、美团、饿了么等应用。

但微服务到底是什么意思?什么样的架构可以叫做微服务?如何在不同场景下正确使用微服务?请听文档君为您一一解答。

微服务之前最常用的架构是单体架构,俗称“一个jar(war)包打天下”。即在一个jar包工程中采用MVC(模型(Model)-视图(View)-控制器(controller))架构,把系统中所有的功能、模块耦合在一个应用中的架构方式。单体架构的应用程序通常由三个主要组件构成:

  • 用户界面层(User Interface Layer):负责与用户进行交互的前端组件,常见的包括网页界面或移动应用的界面。

  • 业务逻辑层(Business Logic Layer):与用户界面和数据库操作等进行交互,根据业务需求进行数据处理、验证、计算等操作,主要负责处理业务规则和逻辑。

  • 数据访问层(Data Access Layer):用于持久化数据的后端数据库,通常使用关系型数据库(如MySQL、Oracle等)。


单体架构的优缺点如下。

随着业务扩大,需求持续增加,单体架构很难满足业务快速变化的需要。一方面,代码的可维护性,扩展性,灵活性在降低,另一方面,系统的测试、构建、维护成本在增加,于是随着应用程序越来越庞大,最终需要进行改造和重构。为了将复杂问题简单化,解决单体架构带来的问题,微服务架构应运而生,是具有更高灵活性和可伸缩性的架构模式。

微服务架构(Microservices Architecture)是将单一的应用程序拆分成一个一个小型的、松耦合的服务模块。每个模块运行在自己的进程中,服务模块之间通过轻量级的通信机制(通常是HTTP RESTful API)相互通信,这些服务模块们,一起组成了一个完整的应用系统。每个服务模块都围绕具体业务进行构建开发,并且能够被独立地部署到生产环境。微服务中的各个服务模块无需使用统一的技术栈(如编程语言、数据库等),技术栈可以根据不同的业务服务和开发团队进行灵活选择,以保证最低限度的集中式管理。

微服务架构除了有各个业务微服务,还有多种微服务组件,如服务网关、注册中心等,提供微服务治理,下图是微服务架构图。

微服务架构的核心组件的功能介绍如下:

  • 服务网关:微服务统一入口,提供路由,鉴权、过滤、限流等功能。

  • 注册中心:所有微服务都注册到注册中心,负责服务注册和服务发现。

  • 配置中心:用于管理微服务应用程序的配置信息的中心化服务。它可以帮助开发人员集中管理应用程序的配置信息,包括数据库连接、API密钥、环境变量等等。

  • 服务通信:负责微服务之间的通信,提供各个微服务之间的数据交互。

  • 服务监控:对各个微服务实时监控(每秒的请求数、成功数等),提供服务熔断和服务降级解决雪崩效应(一个服务宕机后,另外的服务还在相继的调用它,导致其它的服务也宕机)。


微服务架构的优势如下。

在产品初期,团队规模较小,业务复杂度较低时,一般选择单体架构。微服务架构相比于单体架构要求更高的资源配置和团队技术水平,只有对业务规模、高并发、迭代维护等有一定要求的时候,我们可以考虑结合实际需求和团队技术水平,权衡利弊,去合理规划和设计使用微服务架构。

微服务架构适用于以下场景:

  • 基于云的应用:微服务架构因实现弹性可扩展和自动化部署是云原生应用的理想选择。

  • 复杂的企业应用:传统的单体式应用程序随着业务规模的扩大变得越来越复杂。使用微服务可以将应用程序拆分成更小的部分,使开发更加容易且每个服务更便于管理。

  • 高负载应用:面对高负载场景,微服务的水平扩展能力可以通过添加更多的实例进行轻松处理。

  • 多语言和多技术栈应用:每个微服务可以使用不同的编程语言和技术堆栈,因此可以更好地满足不同的需求。

  • 敏捷开发需求:微服务可以实现团队的敏捷开发,因为开发人员可以在服务级别上进行更小的更改,而不必担心影响整个系统。


总的来说,微服务架构适用于任何需要灵活、高度可扩展且易于维护的应用程序。

在微服务架构应用开发的时候,微服务拆分必须遵循一些原则。通过之前微服务架构的介绍,我们可以知道选择微服务架构是为了将复杂问题简单化。“不忘初心,方得始终”,只有这样在后续拆分过程中,才不会忘记最初的目的。

微服务拆分原则包括:

  • 单一职责原则:每个服务应该只有一个明确的职责,不应该承担过多的职责。

  • 服务自治原则:每个服务应该有自己的数据库和业务逻辑,不应该依赖于其他服务的数据和业务逻辑。例如电商系统中用户管理微服务的用户数据存放在用户信息数据库,订单管理微服务中的订单信息存放在订单信息数据库中,同理会员微服务、物流微服务都应对应有各自的数据库进行数据管理。

  • 按领域边界拆分:根据业务领域的不同将应用拆分为不同的服务,每个服务可以通过 API 或消息队列等方式与其他服务通信。业务领域可以根据功能职责划分,例如用户管理、基本商品信息、物流物流等模块进行拆分,也可以根据非功能进行业务领域边界拆分,如稳定业务和高频迭代业务、常规并发量业务和超高并发量的业务等。

  • 接口隔离原则:为提高应用整体安全性,各个微服务之间的接口应该只暴露必要的操作,而不是全部暴露,即使用多个专门的接口,而不使用单一的总接口。例如用户管理微服务提供了一组跟用户相关的API供其它微服务调用,比如:注册、登录、获取用户信息等,但删除用户的接口仅限后台管理微服务调用,若不加限制地被其他业务系统调用,就有可能导致误删用户。

  • 可重用性原则:将通用的代码封装为独立的库,多个服务可以共享这些库。



想第一时间收到我们的更新吗?

只需两步,为文档君加上“爱你一万年”星标⭐!

没有星标,你爱的文档君就要跟你失联啦~

我们是一群平均从业年限5+的通信专业工程师。
关注我们,带你了解通信世界的精彩!


中兴文档 通俗易懂且高颜值的通讯技术文档!
评论 (0)
  • 在汽车工业的照明领域,梅赛德斯-奔驰一直是创新的先锋。其最新的ABD矩阵大灯技术方案,不仅体现了品牌对安全和舒适驾驶体验的不懈追求,更是智能照明系统发展的一个里程碑。本文将详细介绍这一技术的构成、工作原理及其带来的益处。ABD矩阵大灯技术,全称为Adaptive Beam Dynamics,是一种高度先进的前照灯系统。与传统的汽车照明相比,它能够提供更为精准和灵活的照明效果。核心技术包括了智能化的传感器阵列、精密的光学组件以及复杂的算法控制单元。该技术的核心在于它的自适应能力。通过集成在车辆前方
    lauguo2013 2024-04-12 15:35 25浏览
  • 隔离驱动芯片作为电子领域中的关键组件,在电力电子、新能源、汽车电子等领域中发挥着至关重要的作用。然而,长期以来,我国在隔离驱动芯片领域依赖进口,面临着技术受限、供应不稳定等问题。因此,实现隔离驱动芯片的国产化成为我国电子产业发展的重要战略之一。隔离驱动芯片国产化的进展与成果近年来,我国政府和企业加大了对隔离驱动芯片国产化的支持和投入。通过引进国外先进技术、加强技术攻关和人才培养,我国隔离驱动芯片产业取得了显著进展。一些企业已经能够自主设计、生产高性能、高可靠性的隔离驱动芯片,填补了国内相关领域的
    克里雅半导体科技 2024-04-12 16:37 46浏览
  • 科技云报道原创。春节期间,OpenAI的最新技术成果——文生视频模型Sora惊艳登场,令海内外的AI从业者、投资人彻夜难眠。Sora大模型可以让用户仅通过输入一个句子,就可以生成与好莱坞画面相媲美的视频,且长度最多可达1分钟,让人深感震撼。对于这颗“深水炸弹”,众说纷纭。Open AI自称Sora是“世界模拟器”。有网友惊呼“现实不存在了”。马斯克直言:人类认赌服输。美国科技博主马克斯·布朗利表示,Sora或将拉响影视行业失业警报。毋庸置疑,Sora极具破坏性创新的潜力,必将重塑现有的产业格局如
    科技云报到 2024-04-12 15:30 35浏览
  • 光耦合器也称为光隔离器,是许多电子电路中的重要组件,可在输入和输出信号之间提供隔离。它们在各种应用中确保安全、降低噪声和防止接地环路方面发挥着至关重要的作用。在本文中,我们将深入研究光耦合器的基础知识,探讨它们的工作原理及其输入和输出之间的关系。了解光耦合器:光耦合器由一个发光二极管(LED)组成,该发光二极管在单个封装内与光电探测器(通常是光电晶体管或光电二极管)进行光学耦合。LED所在的输入侧被称为“初级”或“输入”侧,而包含光电探测器的输出侧被称为“次级”或“输出”侧。光耦合器输入和输出隔
    腾恩科技-彭工 2024-04-12 16:13 32浏览
  •        2024年3月22日,期待已久的ISO 11898-2:2024版本横空出世,标志着新一代CAN总线的时代即将到来(ISO/FDIS 11898-1:2023也处于最终投票阶段)。搭载着2048Byte的CANXL列车已蓄势待发,决心突破10M的高速通道。Autosar、英飞凌、ST、Vector和NXP等行业风向标早已准备迎接CANXL高速通道给整车SoA架构带来新的变革。1、第三代CAN总线(CANXL)    &nb
    经纬恒润 2024-04-12 16:17 28浏览
  • 科技云报道原创。从540亿元到1286亿元——这是中国通信标准化协会大数据技术标准推进委员会针对中国数据库行业给出的一份预测报告。报告指出,未来五年,中国数据库行业将从百亿级市场跨越成为千亿级市场。最近两年,中国的数据库行业似乎也在迎来一轮新热潮,而这种热潮是伴随着5G、云计算、大数据和AI等多种技术共同出现的。在企业数字化加速到来的同时,企业对于各类数据分析的需求也被越发放到台前。种种变革之下,数据库行业是否将迎来新的发展?数据库发展出现新趋势如果将整个软件产业体系比喻成一棵参天大树,数据库则
    科技云报到 2024-04-12 16:44 55浏览
  • 科技云报道原创。在过去一两年里,以GPT和Diffusion model为代表的大语言模型和生成式AI,将人们对AI的期待推向了一个新高峰,并吸引了千行百业尝试在业务中利用大模型。国内各家大厂在大模型领域展开了激烈的军备竞赛,如:文心大模型、通义千问、混元大模型、盘古大模型等等,这些超大规模的模型训练参数都在千亿以上,有的甚至超过万亿级。即便训练一次千亿参数量模型的成本可能就高达数百万美元,但大厂们依然拼尽全力,除此之外也有很多行业企业希望拥有自己的专属大模型。对于企业来说,要想在大模型的竞争中
    科技云报到 2024-04-12 15:45 24浏览
  • 前言BIM(Building Information Modeling,建筑信息建模)于2011年左右出现,是建筑行业的一个重大突破。如今,该项技术已经成熟,除施工阶段以外,还可以在其他阶段使用。那么,如何将BMI集成到SCADA系统中?BIM—连接建筑设计与建筑维护的纽带之前,项目经理们使用AutoCAD制作简单的图纸。BIM具有三个特定功能,超越了简单的图纸设计:使用的对象易于复制3D建模取代2D图纸对象可以组合(例如,门可以嵌入墙体)BIM的首要目标是完善和深化设计阶段。更好的设计意味着施
    宏集科技 2024-04-12 15:58 32浏览
  • 数字隔离器是电子系统中,数字信号和模拟信号进行传递时,使其且具有很高的电阻隔离特性,以实现电子系统与用户之间的隔离的一种芯片。设计人员之所以引入隔离,是为了满足安全法规或者降低接地环路的噪声等。虽然光耦合器无疑可以有效地实现其目的,但进一步探索隔离技术可能会推出更符合您的应用需求的解决方案,与优雅和独创性产生共鸣。电流隔离:目的和方法电流隔离是确保电子系统安全、可靠性和效率的基石。它的目的是防止不需要的电流和电压在互连电路之间通过,从而防止潜在危险和信号失真。传统上,利用变压器耦合、电容器耦合和
    腾恩科技-彭工 2024-04-12 16:11 37浏览
  • 光电耦合器是一种将光学信号转换为电信号,或将电信号转换为光学信号的器件,广泛应用于通信、医疗、工业控制等领域。其制造工艺的精湛程度直接影响到器件的性能和可靠性。光电耦合器的制造工艺流程光电耦合器的制造工艺主要包括材料选择、器件设计、加工制造和测试等环节。首先是选择高品质的光电材料,如硅、玻璃等,以确保器件具有良好的光学特性和稳定性。其次是根据设计要求,进行器件结构设计和光学参数计算,确定器件的尺寸、形状和光学特性。然后是采用先进的加工技术,如激光切割、精密磨削等,进行器件的加工制造,确保器件的尺
    克里雅半导体科技 2024-04-12 16:38 54浏览
  • 科技云报道原创。在中国金融业数字化转型的历史长卷中,过去十年无疑是一部磅礴的史诗。2017年,南京银行第一次将传统线下金融业务搬到了线上。那一年,它的互联网金融信贷业务实现了过去10年的业务总额。2021年,富滇银行通过数字化转型,将整体业务全面线上化,再造了一个“线上富滇”。那一年,它的整体业务实现了过去7年首次超过两位数的增长。一个个鲜活的案例,见证了中国金融业从互联网化迈向全面数字化的进程,而云计算技术的引入成为了这一进程中的关键驱动力。近些年来,金融机构通过“上云”,使得IaaS层基础设
    科技云报到 2024-04-12 16:16 44浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦