【微服务】什么是微服务?-- 全面了解微服务架构

news/2024/5/20 13:20:16/文章来源:https://blog.csdn.net/jiagoushipro/article/details/131467715

bca1b226e21eb979959e85096fd7505b.png

What is Microservices — Edureka

您有没有想过,什么是微服务以及扩展行业如何与它们集成,同时构建应用程序以满足客户的期望?


要了解什么是微服务,您必须了解如何将单体应用程序分解为独立打包和部署的小型微型应用程序。本文将让您清楚了解开发人员如何使用微服务根据需要扩展其应用程序。


在本文中,您将了解以下内容:

  • 为什么是微服务?

  • 什么是微服务?

  • 微服务架构的特点

  • 微服务架构的优势

  • 设计微服务的最佳实践

  • 使用微服务的公司

为什么是微服务?


现在,在我告诉你微服务之前,让我们看看在微服务之前流行的架构,即单体架构。
用外行的话来说,你可以说它类似于一个大容器,其中应用程序的所有软件组件都组装在一起并紧密打包。
列出了单体架构的挑战:

e869bdb83706f74ce8a3a0a088d5d090.png

Challenges of Monolithic Architecture — What is Microservices

不灵活——无法使用不同的技术构建单体应用程序
不可靠——即使系统的一个功能不起作用,那么整个系统也不起作用
不可扩展——应用程序无法轻松扩展,因为每次需要更新应用程序时,都必须重新构建整个系统
阻碍持续开发——应用程序的许多功能不能同时构建和部署
开发缓慢——单体应用程序的开发需要大量时间来构建,因为每个特性都必须一个接一个地构建
不适合复杂应用程序——复杂应用程序的特性具有紧密耦合的依赖关系


上述挑战是导致微服务发展的主要原因。


什么是微服务?


微服务,又名微服务架构,是一种架构风格,它将应用程序构建为围绕业务领域建模的小型自治服务的集合。

f7a18a66d916729c38970488a2c1a1f4.png

Microservices Representation —What Is Microservices

在微服务架构中,每个服务都是自包含的,并且实现了单一的业务能力。


传统架构与微服务的区别


将电子商务应用程序视为一个用例,以了解它们之间的区别。

我们在上图中观察到的主要区别在于,所有功能最初都在共享单个数据库的单个实例下。但是,对于微服务,每个特性都被分配了一个不同的微服务,处理它们自己的数据,并执行不同的功能。
现在,让我们通过查看其架构来更多地了解微服务。参考下图:

6118bd8bc847527b0212c732a2b58c5e.png

Differences Between Monolithic Architecture and Microservices - What is Microservices

微服务架构

897c3c2e9400d93f15067c828c49e157.png

Microservice Architecture - What is Microservices

  • 来自不同设备的不同客户端尝试使用不同的服务,例如搜索、构建、配置和其他管理功能。

  • 所有服务都根据其域和功能进行分离,并进一步分配给各个微服务。

  • 这些微服务有自己的负载均衡器和执行环境来执行它们的功能,同时在自己的数据库中捕获数据。

  • 所有微服务都通过无状态服务器(REST 或消息总线)相互通信。

  • 微服务借助服务发现了解其通信路径,并执行自动化、监控等操作功能。

  • 然后,微服务执行的所有功能都通过 API 网关与客户端通信。

  • 所有内部点都从 API 网关连接。因此,任何连接到 API 网关的人都会自动连接到整个系统。


现在,让我们通过查看其特性来了解更多关于微服务的信息。

微服务功能

e57042bd455e9a5b2e3f6b1a061df572.png

Features Of Microservices — What is Microservices

  • 解耦——系统内的服务在很大程度上是解耦的。因此,整个应用程序可以轻松构建、更改和扩展。

  • 组件化——微服务被视为可以轻松更换和升级的独立组件。

  • 业务能力——微服务非常简单,专注于单一能力。

  • 自治——开发人员和团队可以彼此独立工作,从而提高速度。

  • 持续交付——通过软件创建、测试和批准的系统自动化,允许频繁发布软件。

  • 责任——微服务不关注应用程序作为项目。相反,他们将应用程序视为他们负责的产品

  • 去中心化治理——重点是为正确的工作使用正确的工具。这意味着没有标准化的模式或任何技术模式。开发人员可以自由选择最有用的工具来解决他们的问题

  • 敏捷性——微服务支持敏捷开发。任何新功能都可以快速开发并再次丢弃

微服务的优势

518206a7ab90e07c80bcf5b2ca7eee7e.png

Advantages of Microservices - What is Microservices

  • 独立开发——所有微服务都可以根据各自的功能轻松开发

  • 独立部署——根据他们的服务,他们可以单独部署在任何应用程序中

  • 故障隔离——即使应用程序的一项服务不工作,系统仍然继续运行

  • 混合技术栈——不同的语言和技术可用于构建同一应用程序的不同服务

  • 粒度缩放——单个组件可以根据需要进行缩放,无需将所有组件一起缩放


设计微服务的最佳实践


在当今世界,复杂性已成功渗透到产品中。微服务架构承诺让团队保持扩展并更好地运作。
以下是设计微服务的最佳实践:

09dc4091a0a8cef85266d40cb6a6cc78.png

Best Practices To Design Microservices - What is Microservices

现在,让我们看一个用例来更好地理解微服务。


用例:购物车应用程序


让我们看一个购物车应用程序的经典用例。
当您打开购物车应用程序时,您看到的只是一个网站。但是,在幕后,购物车应用程序具有接受付款的服务、客户服务等。
假设这个应用程序的开发人员已经在一个整体框架中创建了它。请参考下图:

f6acdc3e69990e259da7a8598d5a5ce6.png

Monolithic Framework Of Shopping Cart Application — What is Microservices

因此,所有功能都放在一个代码库中,并位于一个底层数据库下。
现在,让我们假设市场上出现了一个新品牌,开发人员希望将即将推出的品牌的所有细节都放在这个应用程序中。
然后,他们不仅需要为新标签重新设计服务,还必须重新构建整个系统并相应地进行部署。
为了避免此类挑战,该应用程序的开发人员决定将他们的应用程序从单体架构转变为微服务。参考下图了解购物车应用的微服务架构。

f8ffdd22a1a3cfc88e50269eafb4765e.png

Microservice Architecture of Shopping Cart Application — What is Microservices

这意味着开发人员不会创建 Web 微服务、逻辑微服务或数据库微服务。相反,他们为搜索、推荐、客户服务等创建单独的微服务。
这种类型的应用程序架构不仅可以帮助开发人员克服以前架构面临的所有挑战,还可以帮助购物车应用程序轻松构建、部署和扩展。


使用微服务的公司


有很多公司使用微服务来构建应用程序,这些只是仅举几例:

27901aaee93a72eb0fcb86f905253a1f.png

Companies using Microservices - What is Microservices

这将我们带到关于什么是微服务的文章的结尾。我希望您发现这篇文章内容丰富,并为您的知识增加了价值。

本文 :https://jiagoushi.pro/what-microservices-learn-all-about-microservice-architecture
讨论:知识星球【首席架构师圈】或者加微信小号【ca_cto】或者加QQ群【792862318】
公众号

【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
7c6799199b7b4ee70be35fbf8c58e32b.jpeg
微信小号

【ca_cea】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

fc501e42b3e834fbd439ddcb60c9ba08.jpeg

QQ群

【285069459】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

10cb822c91e03e77d2d1f4cbae9834b4.jpeg

视频号【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

2208598fef00ed02e4312902736b1dc8.jpeg

知识星球【首席架构师圈】向大咖提问,近距离接触,或者获得私密资料分享。

466f0bec0de3f63cde877f0ae009690d.jpeg

喜马拉雅【超级架构师】路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】
领英Harryhttps://www.linkedin.com/in/architect-harry/
领英群组领英架构群组
https://www.linkedin.com/groups/14209750/
微博‍‍【超级架构师】智能时刻‍
哔哩哔哩【超级架构师】

bda443249e64151ffc7966cb639b0f6a.jpeg

抖音【cea_cio】超级架构师

37c2e4c4bd7e782a09dca61951ecca8d.jpeg

快手【cea_cio_cto】超级架构师

b0ced39c695f53d09368f5e949ab29bc.jpeg

小红书【cea_csa_cto】超级架构师

6ef4907000403dba22eba5f6ceefb5a2.jpeg

网站CIO(首席信息官)https://cio.ceo
网站CIO,CTO和CDOhttps://cioctocdo.com
网站架构师实战分享https://architect.pub   
网站程序员云开发分享https://pgmr.cloud
网站首席架构师社区https://jiagoushi.pro
网站应用开发和开发平台https://apaas.dev
网站开发信息网https://xinxi.dev
网站超级架构师https://jiagou.dev
网站企业技术培训https://peixun.dev
网站程序员宝典https://pgmr.pub    
网站开发者闲谈https://blog.developer.chat
网站CPO宝典https://cpo.work
网站首席安全官https://cso.pub    ‍
网站CIO酷https://cio.cool
网站CDO信息https://cdo.fyi
网站CXO信息https://cxo.pub

谢谢大家关注,转发,点赞和点在看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_323761.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Electron + ts + vue3 + vite 项目搭建

Electron 是一个基于 Chromium 和 Node.js 的桌面应用程序开发框架,而 Vue3 则是一种流行的前端框架。将两者结合使用可以快速地打造出跨平台的桌面应用程序。在这种组合中,Electron 提供了强大的桌面应用开发能力,而 Vue3 则提供了易用的 UI…

【2023年江西省研究生数学建模竞赛】题目一 蒸汽发生器倒U型管内液体流动 建模方案及参考文献

代码与结果如下:完整文档见文末 完整思路”请点击这里“到原文章获取 题目: PACTEL压水堆整体测试设备在2009年建造,用于带有垂直倒U型管蒸汽发生器的压水堆热液压相关的安全性研究,参见图1。 PACTEL压水堆设施包括一个反应堆压力容器模型…

机器学习技术(一)——python基础超详解

机器学习技术(一)——python基础超详解 文章目录 机器学习技术(一)——python基础超详解0、引言1、基础概念**:snake:变量****:snake:注释****:snake:输入 输出** 2、数据类型**:snake:数值类型****:snake:运算符****:snake:字符串…

Matlab论文插图绘制模板第106期—带误差棒的堆叠柱状图

在之前的文章中,分享了Matlab带误差棒的折线图绘制模板: 带误差棒的柱状图绘制模板: 进一步,再来分享一下带误差棒的堆叠柱状图的绘制模板。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源…

《移动互联网技术》第一章 概述: 掌握移动互联网的基本概念和组成

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

基于Java+Swing+Mysql商品信息管理系统

基于JavaSwingMysql商品信息管理系统 一、系统介绍二、功能展示1.主页2.新增商品信息3.查询商品信息 三、数据库四、其他系统实现五、获取源码 一、系统介绍 该系统实现了查看商品列表、新增商品信息、查询商品信息 运行环境:eclipse、idea、jdk1.8 二、功能展示…

Android跨平台语言分析

跨平台技术发展的三个阶段 第一阶段是混合开发的web容器时代 为了解决原生开发的高成本、低效率,出现了Hybrid混合开发原生中嵌入依托于浏览器的WebViewWeb浏览器中可以实现的需求在WebView中基本都可以实现但是Web最大的问题是,它的性能和体验与原生开发…

ARM接口题目

1)说出ARM可以工作的模式名字。 ARM有8个基本工作模式: User :非特权模式,大部分任务执行在这种模式 FIQ :当一个高优先级(fast)中断产生时将会进入这种模式 IRQ :当一个低优先级(normal)中断产生时将会进入这种模式 Supervisor :当复位…

《Linux操作系统编程》 第十章 线程与线程控制: 线程的创建、终止和取消,detach以及线程属性

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

微服务04 分布式搜索引擎 elasticsearch DSL数据聚合 自动补全 数据同步 集群 Sentinel

微服务03 分布式搜索引擎 elasticsearch ELK kibana RestAPI 索引库 DSL查询 RestClient 黑马旅游 分布式搜索引擎03 1.数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎&#x…

【FreeRTOS】Arduino开发STM32

0.开发环境(工具) Vscode 、platformio、arduino、STM32F103C8T6、USB-TTL 引脚连接:STM32直接设置为烧录模式即可,烧录完成后会自动运行程序。 1.点灯加串口输出调试 注意事项:每次上传程序前,需要按一下复位键。 #include &…

vue下基于elementui自定义表单-后端数据设计篇

vue下基于elementui自定义表单-后端篇 自定义表单目前数据表单设计是基于数据量不大的信息单据场景,因为不考虑数据量带来的影响。 数据表有: 1.表单模版表,2.表单实例表,3.表单实例项明细表,4表单审批设计绑定表 以FormJson存…

Unity | HDRP高清渲染管线学习笔记:HDRP Custom Pass

目录 一、Custom Pass Volume组件介绍 1.Mode(模式) 2.Injection Point(注入点) 3.Priority 4.Fade Radius 5.custom passes 二、查看Custom Pass的渲染阶段 Custom Pass允许你执行以下操作(官方文档&#xff0…

前端食堂技术周刊第 88 期:Svelte4、NestJS 10、State of CSS 2023、Vitest 1.0 Roadmap、Fresh 1.2

美味值:🌟🌟🌟🌟🌟 口味:帝王蟹柳 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看下…

mysql基础3——数据备份与恢复、破解数据库密码

文章目录 一、备份方案二、备份工具mysqldump2.1 备份整张表数据2.2 备份整个库数据 三、全量备份四、差异备份五、数据库密码破解 一、备份方案 备份方案概念特点全量备份对某一个时间点上的所有数据或应用进行完全拷贝。数据恢复快,备份时间长。增量备份在一次全…

安装Home Assistant

文章目录 前言1. 安装Home Assistant2. 配置Home Assistant3. 安装cpolar内网穿透3.1 windows系统3.2 Linux系统3.3 macOS系统 4. 映射Home Assistant端口5. 公网访问Home Assistant6. 固定公网地址6.1 保留一个固定二级子域名6.2 配置固定二级子域名 转载自远程穿透的文章&…

多元回归预测 | Matlab海鸥算法(SOA)优化极限学习机ELM回归预测,SOA-ELM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab海鸥算法(SOA)优化极限学习机ELM回归预测,SOA-ELM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环…

【C语言】计算机是如何存储整数和小数的?

文章目录 前言一、正整数和0二、负整数三、小数1、定点数(1)什么是定点数(2)表示精度(3)表示范围(4)优缺点 2、浮点数(1)什么是浮点数(2&#xff…

JMeter变量和和属性(4)

这里写目录标题 一、JMeter变量1、使用JMeter变量的作用有:2、定义变量的方式3、引用变量的方式4、引用变量5、案例:切换GreaterWMS的环境6、案例:测试平台登录案例 二、JMeter属性1、JMeter属性特点2、JMeter属性和变量的区别:3、…