带你初识微服务

news2025/8/6 4:07:16

博客主页:踏风彡的博客
博主介绍:一枚在学习的大学生,希望在这里和各位一起学习。
所属专栏:SpringCloud
文章创作不易,期待各位朋友的互动,有什么学习问题都可在评论区留言或者私信我,我会尽我所能帮助大家。

带你认识微服务

1 序言(提兴趣必备)

​ 在开头,风哥为了提起大家的学习兴趣,先在文章开头对单体架构和分布式架构做一下对比,小伙伴们,一起来跟风哥看一下吧。

​ 然而在开头,我先抛出来几个疑问,能来看这篇文章的小伙伴,相信已经做了一个或多个类似学生管理系统的小型项目,这种项目有一个大体上的特点就是模块单一,架构简单,部署起来十分方便,但是呢,这也往往存在一个问题,什么问题呢?大家想一下,Java的一个宗旨是什么?高内聚,低耦合。而这样的单一架构的系统,耦合程度还是比较高的。

​ 为什么这么说呢?大家思考一下,先看下面这种情况:

在这里插入图片描述

​ 假设做一个这样简单的商务管理系统,倒是能做,服务小众嘛,讲究开发效率,一些问题在这体现的不是那么多,但是如果我们把眼光上升到京东、淘宝这些大型的电商项目来看,如果每个全部功能都写到一个模块里,这里给大家打个比方,一根钢管的承重力是200kg,我们买的东西全部放到一根钢管上,但凡它超过这个限度,我们现成的系统是不是就bom~,直接原地爆炸。那我们怎么样才能极大限度地去避免这种事情的发生呢?这就需要微服务了,那么接下来,风哥就带大家认识一下微服务,Let‘s go.

2 架构对比

​ 微服务实际上还是一个分布式架构的解决方案,在文章开头,风哥仅举了一个小例子,相信有的小伙伴对单体架构和分布式架构还不清晰,所以,我在这部分将对两者地架构进行分析:

2.1 单体架构

​ 单体架构特征:将所有服务集中到一个模块里进行开发。

在这里插入图片描述

可以看出单体架构地特点:

  • 优点
    • 结构简单
    • 部署容易
  • 缺点
    • 耦合度高、可扩展性差、升级维护困难

2.2 分布式架构

​ 分布式架构特征:根据业务功能对模块进行拆分,极大限度保证一个功能一个模块,一个模块为一个服务

在这里插入图片描述

​ 可以看出分布式架构特点:

  • 优点:
    • 耦合度低
    • 服务易于升级和扩展
  • 缺点:
    • 整体架构复杂
    • 项目上线部署难度大

​ 既然微服务这么好用,降低了服务间的耦合度,那我们就不需要思考了嘛?不,微服务架构这么复杂,若是再没有一点规矩,那不是乱了套了嘛。正所谓家有家法、行有行规,微服务也有人家的一套准则,至于准则是什么,这章我们不来细说,我把微服务的服务拆分准则和远程调用的方法放在本专栏的下一篇文章中,这篇文章,风哥仅仅带大家了解下微服务,目的是为了提起大家的学习兴趣,如果这个章节太过繁琐,知识点过多,怕是会劝退很多小伙伴啊😂。

2 微服务初识

​ 首先,看了上边,相信小伙伴们对微服务有了一个整体上的了解,但是却有着不清晰的概念,接下来,风哥给大家梳理一下。

微服务的架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
  • 自治:团队独立、技术独立、数据独立,独立部署和交付
  • 面向服务:服务提供统一标准的接口,与语言和技术无关
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

在这里插入图片描述

​ 正是由于微服务这样的标准,才使程序间进一步啊降低了耦合度,实现了服务的独立性和灵活性,从而更好地做到了高内聚、低耦合。

​ 所以( ̄▽ ̄)*,我们可以认为微服务是经过了一个良好设计的分布式架构方案。

​ 但是,众所周知,每个方案的基石就是技术栈,而在中国乃至全世界,Java领域最引人注目的就是Spring公司提供的SpringCloud架构技术。

3 SpringCloud

​ SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud。

​ 同时SpringCloud集成了很多微服务功能组件,并且它基于SpringBoot对这些组件实现了自动装配,从而能让各位在使用中有着良好的开箱即用的体验。

​ 其中常见的组件包括以下几个:

在这里插入图片描述

​ 另外呢,风哥提前给大家说一下哈,因为SpringCloud是基于SpringBoot实现自动装配,说明SpringCloud是依赖于SpringBoot的,因此,SpringCloud和SpringBoot就有着相应的版本依赖关系。

​ 具体依赖关系可到Spring官网SpringCloud部分来查看。

​ 为了节约小伙伴时间,风哥已经在下面罗列了写这篇博客时的版本依赖关系,大家按需选择版本即可。

在这里插入图片描述

4 初识总结

  • 单体架构:结构简单,搭建起来十分迅速,但是高度耦合,扩展性差,比较适合小型项目,譬如:学生管理系统
  • 分布式架构:低耦合度,可扩展性好,但是其结构复杂,部署难度大,一般适用于大型项目,最常见的京东、淘宝就是分布式架构
  • 微服务:他是一个良好的分布式架构的解决方案
    • 优点:耦合度较小、各个服务之间更独立、可扩展性更好
    • 缺点:架构复杂、项目部署难度比较大、而且上线后运维、监控的成本较高
  • SpringCloud就是一个Spring公司提供的方便易用的微服务架构解决方案,中国类似的呦SpringCloudAlibaba

部署难度比较大、而且上线后运维、监控的成本较高

  • SpringCloud就是一个Spring公司提供的方便易用的微服务架构解决方案,中国类似的呦SpringCloudAlibaba

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

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

相关文章

同花顺_代码解析_技术指标_L

本文通过对同花顺中现成代码进行解析,用以了解同花顺相关策略设计的思想 目录 LH_LYDG LH_猎鹰歼狐 LHBLX LHSJ LHTZ LHXJ LH猎狐雷达 LOF净值 LWR LH_LYDG 猎鹰渡关(检测大盘顶部) 指标用法: (1&#xff…

进程间的信号

目录 一.信号入门 1.1概念 1.2信号发送与记录 1.3信号的处理方式 二.产生信号的方式 2.1通过终端按键产生 2.2通过系统函数向进程发信号 2.3由软件条件产生信号 2.4由硬件异常产生信号 三.阻塞信号 3.1信号相关概念 3.2信号在内核的表示 3.3sigset_t: 3.4…

工具及方法 - 使用Total Commander来查找重名文件

我只是一个Total Commander的轻度使用者,主要使用的是打开多个窗口,可以方便的以标签形式切换。 还有,这个软件是免费的,只是免费版打开时多一步,要输入个数字验证。 今天在使用一个SDK时,要包含进很多头文…

论文阅读笔记《Locality Preserving Matching》

核心思想 该文提出一种基于局部保持的特征匹配方法(LPM)。其核心思想是对于一个正确匹配点,其邻域范围内的其他匹配点与对应目标点之间的变换关系,应该和正确的匹配点保持一致,而错误匹配点,则应该有较大的…

第一章《初学者问题大集合》第6节:IntelliJ IDEA的下载与安装

当完成了Java开发环境之后,各位读者就可以开始编写第一个Java程序了。可是应该在哪里写程序呢?早期的开发者们都是用纯文本编辑工具编写Java程序,并且在命令行窗口中编译和运行Java程序。时至今日,我们早已远离了那个程序开发的“…

CentOs程序环境准备

1. MySQL的安装启动 选择指定操作系统指定版本的mysql进行下载 MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/5.7.html#downloads 选择复制下载链接 回到终端,执行此命令下载 wget https://dev.mysql.com/get/Downloads/MyS…

举个栗子~Tableau 技巧(244):用和弦图(Chord diagram)呈现数据关系

关于和弦图 和弦图(Chord diagram)常用来表示数据之间的相互关系。数据点沿着圆圈分布,通过点和点之间相互连接的弧线来呈现相互之间的关系。和弦图从视觉上来说比较美观,数据呈现又很直观,所以深受数据粉喜爱。 之前…

【Linux初阶】Linux调试器-gdb使用 | gdb的 l/b/info/d/r/n/s/bt/finish/p/(un)display/q

🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【Linux初阶】 ✒️✒️本篇内容:gdb使用相关背景知识,gdb的使用(打断点、查断点、消断点、调试运行、查看对应变量&…

【python拼图游戏】图片自选,来挑战一下自己的极限吧~

嗨害大家好鸭!我是小熊猫❤ 拼图的画面多以自然风光、建筑物以及一些为人所熟识的图案的为题材。 城堡和山峦是两类传统的主题, 不过任何图画和影像都可以用做拼图的素材。 有一些公司还提供将私人摄影作品制成拼图的服务。 今天我小熊猫就给带来py…

FFmpeg5.1 解码rtsp 并用OpenCV 播放

RTSP 连接过程如下图 看下实际过程中FFmpeg 的日志情况: [tcp 0000014CC3256D40] No default whitelist set [tcp 0000014CC3256D40] Original list of addresses: [tcp 0000014CC3256D40] Address ::1 port 8554 [tcp 0000014CC3256D40] Address 127.0.0.1 po…

使用BP神经网络、RBF神经网络以及PSO优化的RBF神经网络对数据进行预测(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

Keysight是德科技E5061B网络分析仪-安泰测试

E5061B ENA系列网络分析仪从5Hz 至3GHz提供了广泛的频率范围。它不仅支持一般的射频应用(例如滤波器或放大器测量等),还支持低频应用(例如直流至直流转换器环路增益测量)。因此,它是所有实验台上进行网络分析的最重要工具。 拥有E5061B,您就…

Selenium4 新特性

一、Selenium4 简介 Selenium是一个综合性项目,包含一系列的工具和库,支持Web浏览器的各种自动化操作: 软件测试爬虫领域RPA领域优点: 开源:https://github.com/SeleniumHQ兼容性: Chrome、FireFox、Edeg、IE、Opera、Safari支持多种编程语言:Java、Python、C#、Ruby、…

Charles抓包web、手机、小程序配置

一、下载地址 二、web抓包 Charles Web抓包,启动Charles会自动与浏览器设置成代理,不需要进行过多的设置。接下来就是通过浏览器发送网络请求,Charles就会直接抓取到这些信息和响应信息。 1、抓取HTTPS协议 Charles配置 点击顶部菜单栏【He…

双功能螯合剂p-NCS-Bz-DFO,1222468-90-7,p-SCN-Bn-Deferoxamine特点分析

●外观以及性质: p-SCN-Bn-Deferoxamine属于双功能螯合剂,西安凯新生物科技有限公司是各种修饰性PEG供应商,提供各种品质优良PEG衍生物,分子量从1000-40000不等,纯度≥95%,发货速度快。 ●中文名&#xff…

Web学习笔记-React

笔记内容转载自AcWing的Web应用课讲义,课程链接:AcWing Web应用课。 CONTENTS1. React配置环境2. ES6语法补充3. Components1. React配置环境 React官网:React。 React是一个声明式,高效且灵活的用于构建用户界面的JavaScript库…

凡事预则立,不预则缺货!2022年底了核芯物联蓝牙AOA定位基站GA25缺货!GA10缺货!GA60也缺货!

凡事预则立,不预则缺货!2022年底了核芯物联蓝牙AOA定位基站GA25缺货!GA10缺货!GA60也缺货! 核芯物联岳毅恒 ​ 深圳核芯物联科技有限公司 战略合作拓展总监 凡事预则立,不预则缺货!202222年底…

brython | 初探鼠标事件-1:点击事件

各位前端大佬勿笑话,运维小弟献丑了。 前段时间看见大佬使用【文言文】写了一个连连看,于是我也想用【brython】也实现一个连连看。 于是乎,你们就看到这篇文章和这个项目了。 如果大佬们对brython不是特别了解的话,建议先查看之…

JVM分析工具

JVM在运行过程中,我们可以利用各种工具对JVM进行分析,这是性能调优的利器。可以通过各种工具了解在系统运行过程中,在JVM底层到底发生了什么。JVM分析工具一般分为两种,一种是命令行工具,一种是图形界面工具。 JVM分析…

卷积操作的不同类型

文章目录1. 一维卷积2. 二维卷积3. 三维卷积4. 扩张卷积5. 空洞卷积6. 分组卷积一般而言,一维卷积用于文本数据;二维卷积用于图像数据,对宽度和高度都进行卷积;三维卷积用于视频及3D图像处理领域,对立方体的三个面进行…