微服务概述之微服务架构

前言

为了解决单体应用的缺点,工程师们想到将原来大的单体应用进行拆分,化整为零形成独立的应用,不过此时这些应用没有直观的入口,因此用传统应用的概念来定义就不太妥当。于是诞生了“服务”,通过服务来描述这种功能性的应用,并其他应用提供功能支持,服务于其他应用。现在“服务”这个词已经广义化了,只要是能向其他组件提供技术支撑的系统都叫服务,甚至出现了很多概念,如SaaS(软件即服务)、PaaS(平台即服务)、IaaS(基础架构即服务)。

什么是服务

服务其实就是将其他应用当成消费者,为其提供特定的功能。例如,将用户登录抽象成一个服务,可以叫作用户服务,让其他服务来调用。以此类推,可以有订单服务、支付服务、消息服务、商品服务、客服服务、营销服务、积分服务等。总之,就是抽取公共部分以避免重复工作。这样一来,后续应用的开发,也就变成了服务的开发。

什么是微服务

理解了服务是怎么回事,接着我们来学习微服务。
微服务概念最早是 Martin Fowler(马丁•福勒)于2014年提出的。他指出了微服务架构是用于描述将软件应用设计成独立部署服务的一种方式,但是并没有给出精确的定义,只是提出了一些确定、通用的特征,如围绕组织和业务能力、自动化部署、节点智能、对语言和数据的分散控制等。
从技术的角度理解,微服务就是将传统的一站式应用,根据不同的业务拆分成一个小的服务,每个服务提供独立的业务功能,拥有自己独立的存储(数据库或者缓存),通过服务之间的互相调用来完成复杂的系统功能。

总结

服务是指将其他应用抽象为功能性的组件,为其他应用提供特定功能支持的系统。微服务则是一种将软件应用设计成独立部署服务的架构方式。在微服务架构下,传统的一站式应用根据业务进行拆分,形成小的独立服务,每个服务都提供独立的业务功能和存储,并通过互相调用来完成复杂的系统功能。

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

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

相关文章

SQL-DML增删改

🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL 🍹文章作者技术和水平很有限,如果文中出现错误&am…

Mac 使用nvm use命令无法切换node版本

解决方案:先卸载使用brew安装的node( 具体操作请移步使用brew卸载node),再使用nvm use命令切换node版本。 问题复现:使用nvm use命令显示切换成功,但是实际版本还是原来的node版本,应该是与bre…

reduce求和方法

reduce求和方法,有两种语法: 语法1(不带初始值): let 结果 arr.reduce( ( 累加的和, 数组元素) > {return 累加的和 数组元素 }) 示例如下: let arr [3,5,7,9] let sum arr.reduce((total,curr)…

MySQL的事务隔离级别脏读、幻读、不可重复读

一、MySQL的事务隔离级别 1、读未提交:一个事务还没提交时,它做的变更就能被别的事务看到。(别人改数据的事务尚未提交,我在我的事务中也能读到。) 2、读提交:(Oracle、SQL Server默认&#x…

短剧时代即将来临?AI 自动生成剧本和多场景长视频

近年来随着扩散模型(diffusion models)的进步和发展,给定文本提示进行高质量视频生成技术有着显著的提升。这些技术方案大多针对已有的二维图像扩散模型进行拓展,将图像二维神经网络修正为视频三维神经网络,并基于扩散…

【C++】vector中的值的擦除

在使用c中的vector容器时需要对其中的某些元素进行擦除,本文就来介绍一下各种擦除的相应代码实现。 擦除vector中的前n个值 //擦除vector中的前n个值 infoVector.erase(infoVector.begin(), infoVector.begin() n); 擦除vector中的某个值(以下标指定…

怎么画业务流程图?掌握这几步就够了

怎么画业务流程图?业务流程图不仅仅是一个简单的图表,而是一个强大的工具,能够帮助企业更好地理解、优化和管理业务流程。而想要画出一个完整的业务流程图并不简单,下面就给大家介绍一下具体的绘制方法。 一、选择绘制工具 在绘制…

UNIX环境编程-进程纪要

进程章节 环境表关于system调用的安全问题终端和作业管控信号sigsuspend函数 守护进程编程规则多进程问题多线程问题IO种类进程通信终端 环境表 每个程序都有一张环境表。环境表是一个字符指针数组,其中每个指针都包含一个以null 结尾的环境变量字符串。全局变量en…

书客、明基、好视力护眼台灯大比拼,哪款更胜一筹?

在现代生活中,我们经常面对着各种电子屏幕,给眼睛造成了一定的压力,时间一长,会发现眼睛很疲劳。很多家长仔细观察,当孩子长时间处在不合适地灯光下玩耍、学习,会发现他们有揉眼的动作,这就是不…

汽车销售领域相关专业术语

引言 本文是笔者在从事汽车销售领域信息化建设过程,积累的一些专业术语注解,供诸位参考交流。 专业术语清单 4S店   汽车销售服务4S店;是由经销商投资建设,按照汽车生产厂家规定的标准建造,是一种集整车销售(Sale)、零配件(Sparepart)、售后服务(Service)、信息…

vivado ip manager cache

https://china.xilinx.com/video/hardware/configuring-managing-reusable-ip-vivado.html

07- OpenCV:模糊图像

目录 一、模糊原理 二、模糊的相关处理方法: 1、均值滤波(归一化盒子滤波) 2、高斯滤波(正态分布的形状) 3、中值模糊 4、双边模糊算法(美容软件) 5、相关代码: 6、几种模糊算法的比…

如何在 Ubuntu 20.04 上安装 Apache Kafka

前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 如何在 Ubuntu 20.04 上安装 Apache Kafka 介绍 Apache Kafka是一种分布式消息代理,旨在处理大量实…

一体机旅游景区污水处理设备工艺说明

一体机旅游景区污水处理设备工艺说明 原水浓度:COD≤500mg/L,BOD≤300mg/L,NH3-N≤40mg/L,超过以上浓度需另行设计。 出水标准:COD≤60mg/L,BOD≤20mg/L,NH3-N≤15mg/L,出水要求如更…

常用Java代码-Java中的异常传播

在Java中,异常传播是一个重要的概念,它描述了异常如何在方法之间传播。当一个方法抛出一个异常时,调用该方法的代码必须处理该异常,否则程序将终止。如果调用该方法的代码也抛出了异常,那么这个异常会继续向上传播&…

问CHATawsec2怎么部署实例?

CHAT回复:在AWS EC2(Elastic Compute Cloud)上部署实例主要涉及以下步骤: 1. 登录AWS管理控制台:使用你的AWS账户登录AWS管理控制台。 2. 导航到EC2服务:在顶部菜单栏中,点击"服务"然…

android——rxjava的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、rxjava是什么?二、使用步骤 1.引入库2.读入数据总结 前言 本文介绍项目开发中使用到rxjava的情形,以及详细的代码。 一、rxjava是什…

2023年终小结

亲爱的小伙伴们: 随着2023年即将结束,我想回顾一下过去一年作为一名程序员的成长和经验,并分享一些我在技术和团队合作方面的收获。 1. 技术成长与学习: 在过去的一年里,我积极追求技术的学习和发展。我深入研究了新…

Canvas 指南与总结

背景 Canvas API 提供了一个通过 JavaScript 和 HTML 的元素来绘制图形的方式。它可以用于动画、游戏画面、数据可视化、图片编辑以及实时视频处理等方面。 Canvas API 主要聚焦于 2D 图形。而同样使用元素的 WebGL API 则用于绘制硬件加速的 2D 和 3D 图形。 简单例子 <…

运维管理软件:助力大学校园破浪前行的数字引擎

随着校园信息化的深入推进&#xff0c;智慧校园的建设面临着诸多挑战。庞大的IT环境、复杂的网络架构、多样化的应用需求&#xff0c;都对运维管理提出了更高的要求。同时&#xff0c;数据安全、隐私保护以及高效的资源利用也成为智慧校园运维的核心需求。 在这场数字化时代的浪…