微服务【分布式架构&认识微服务&SpringCloud】第1章

这篇具有很好参考价值的文章主要介绍了微服务【分布式架构&认识微服务&SpringCloud】第1章。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1,认识微服务

1.1,单体架构

1.2,分布式架构

1.3,微服务

1.4,SpringCloud

1.5,总结


  • 💂 个人主页: 爱吃豆的土豆
  • 🤟 版权: 本文由【爱吃豆的土豆】原创、在CSDN首发、需要转载请联系博主
  • 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
  • 🏆人必有所执,方能有所成!

  • 🐋希望大家多多支持😘一起进步呀!

1,认识微服务

1.1,单体架构

微服务【分布式架构&认识微服务&SpringCloud】第1章

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。(意思就是说,所有的功能在一个项目中进行实现,不用管复杂的架构设计,只需要创建一个项目,有功能就往这个项目里面加代码就ok了)

优点:

1,架构简单:不需要搞复杂的架构设计理念

2,部署成本低:把写好的项目打成包,在tomcat服务器上面部署一下,用户就可以访问了,如果用户访问多了,那就在加两个服务器,形成负载均衡的集群。

缺点:

1,耦合度高:在大型项目的开发中,像拼多多,淘宝这些,一个大型项目里面有很多的功能模块,代码量十几万行甚至于几十万行代码,如果使用单体架构。
第一:打包部署就可以需要很久,效率太低。
第二:项目中的功能模块的代码你中有我,我中有你,假设其中一个模块中出现问题,其他模块也会受到影响,代码的边缘化也越来越模糊。所以在大型项目中基本上都是采用分布式架构

1.2,分布式架构

分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务

微服务【分布式架构&认识微服务&SpringCloud】第1章 

分布式架构的优缺点:

优点:

  • 降低服务耦合:每个功能模块,都成为了单独的项目,大家各写各的项目,没有过多的牵扯耦合度就会大大的降低,两外像打包速度,代码量都会减少。

  • 有利于服务升级和拓展:像以后功能模块项目/服务进行升级维护也影响不了别的功能模块项目的正常进行。

缺点:

  • 服务调用关系错综复杂:一个大型的项目被拆分许多的服务,各个服务的功能模块该如何调用?许多的服务部署起来也是比较麻烦。

分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:

  • 服务拆分的粒度如何界定?(就是说一个大型项目被拆分为许多的服务,该如何拆分哪几个服务作为单独的模块,那些业务不需要拆分,这个拆分的粒度需要把握

  • 服务集群地址如何维护?(就像下面一个支付功能的服务,就部署了两台机器,如果是个大型项目需要部署上百台的,这些服务集群的地址该如何的维护和调用,总不能把地址写死吧!如果部署上线地址变了怎么办,维护起来很麻烦

  • 微服务【分布式架构&认识微服务&SpringCloud】第1章

  • 服务之间如何实现远程调用(各个服务之间该如何进行远程调用呢?)?

  • 服务健康状态如何感知?(加入用户功能这个服务调用商品功能这个服务,刚好这个商品服务出问题了挂了,这边一调用也导致用户功能服务也出问题了,这样就造成了级联失败)

为了解决这些问题,人们需要制定一套行之有效的标准来约束分布式架构。出现了各种各样的技术(如下图)去解决这些问题:但是近几年运用最广泛的最火的莫过于微服务

微服务【分布式架构&认识微服务&SpringCloud】第1章

1.3,微服务

微服务【分布式架构&认识微服务&SpringCloud】第1章

 

微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征(微服务它还是一种分布式架构只不过人们在设计分布式过程中踩坑,不断的总结经验,得到了良好的分布式架构实践方案):

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责(什么是单一职责我举个例子加入一个商城项目里面有用户模块,用户里面又有会员模块,积分模块什么的,把每个模块都拆分为一个服务,这就是拆分的力度更小,一个服务就对应一个一个业务功能,一对一的效果)

  • 面向服务:服务提供统一标准的接口,与语言和技术无关(这个服务该如何调用,肯定不能像单体架构中直接调用,这就需要这个服务提供这个功能的接口,这样别的服务就可以远程调用你这个服务中的接口从而实现想要实现的功能)

  • 自治:1,团队独立(就是交给你们五个人或者八个人做这个服务,你们分工有前端,运维,后端,测试,什么的,非常高效的把该服务开发出来,以后技术升级或者服务升级直接找到你们这个团体着手去做,很高效方便)
    2,技术独立(因为服务与服务之间互不影响,你们这个团队的服务可以自己选择自己想用的技术或者适合本次业务的技术,术业有专攻嘛
    3,数据独立(每个服务有单独的数据库),独立部署(用户可以根据自己的需求去访问自己想要的服务)和交付

  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题(这个就是服务调用过程中做了隔离,调用你这个服务发现你挂了,但是我不能挂做出一定的容错性,避免出现级联问题

微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。

因此,可以认为微服务是一种经过良好架构设计的分布式架构方案

但方案该怎么落地?选用什么样的技术栈?全球的互联网公司都在积极尝试自己的微服务落地方案。

其中在Java领域最引人注目的就是SpringCloud提供的方案了。

1.4,SpringCloud

SpringCloud是目前国内使用最广泛的微服务框架。官网地址:Spring Cloud。

SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验

其中常见的组件包括:

微服务【分布式架构&认识微服务&SpringCloud】第1章

 

另外,SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系,如下:

微服务【分布式架构&认识微服务&SpringCloud】第1章 

1.5,总结

  • 单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统

  • 分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝

  • 微服务:一种良好的分布式架构方案

    ①优点:拆分粒度更小、服务更独立、耦合度更低

    ②缺点:架构非常复杂,运维、监控、部署难度提高

  • SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件文章来源地址https://www.toymoban.com/news/detail-403310.html

最后:

        如果文章对您有帮助,就拿起小手赶紧给博主点赞💚评论❤️收藏💙 一下吧! 

       愿我们在未来的日子里。熠熠生辉!!!

到了这里,关于微服务【分布式架构&认识微服务&SpringCloud】第1章的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud搭建微服务之Micrometer分布式链路追踪

    由于Spring Cloud Sleuth最新版本只支持Spring Boot 2.7.x,核心项目已经迁移到Micrometer Traceing项目,Spring Boot 3.x版本要实现分布式链路追踪需要集成Micrometer。更多详情可以参阅Micrometer官网 本文将以Spring Boot 3.2.x和Spring Cloud 2023.0.x版本和JDK 17实现分布式链路追踪,有需要了解Spring Bo

    2024年03月22日
    浏览(63)
  • 【springcloud微微服务】分布式事务框架Seata使用详解

    目录 一、前言 二、事务简介 2.1 原子性 2.2 一致性 2.3 隔离性 2.4 持久性

    2023年04月26日
    浏览(42)
  • 微服务技术栈SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下

    聚合(aggregations)可以实现对文档数据的统计、分析、运算。聚合常见的有三类: 桶(Bucket)聚合:用来对文档做分组 TermAggregation:按照文档字段值分组 Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组 度量(Metric)聚合:用以计算一些值,比如:最大值

    2024年03月26日
    浏览(65)
  • 【SpringCloud】微服务保护(Sentinel)和分布式事务(Seata)

    建议学完该系列前篇 【SpringCloud】商城项目拆分微服务各个组件学习 然后再来看本文 然后学习 【RabbitMQ】交换机、队列、可靠性保证和延迟消息 在微服务远程调用的过程中,还存在几个问题需要解决。 首先是业务健壮性问题: 例如在之前的查询购物车列表业务中,购物车

    2024年01月25日
    浏览(56)
  • 微服务学习:SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    目录 一、高级篇 二、面试篇 ==============实用篇============== day05-Elasticsearch01 1.初识elasticsearch 1.4.安装es、kibana 1.4.1.部署单点es 1.4.2.部署kibana 1.4.3.安装IK分词器 1.4.4.总结 2.索引库操作 2.1.mapping映射属性 2.2.索引库的CRUD 2.2.1.创建索引库和映射 2.2.2.查询索引库 2.2.3.修改索引库 2.

    2024年02月02日
    浏览(59)
  • 微服务分布式springcloud研究生志愿填报辅助系统

    本文讲述了研究生志愿填报辅助系统。结合电子管理系统的特点,分析了研究生志愿填报辅助系统的背景,给出了研究生志愿填报辅助系统实现的设计方案。 本论文主要完成不同用户的权限划分,不同用户具有不同权限的操作功能,在用户模块,主要有用户进行注册和登录,

    2024年03月18日
    浏览(43)
  • SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈

    我们发现在微服务中有一个令人头疼的问题——部署,用Docker去解决这个部署难题 1、项目部署的问题 2、Docker 扔到一台机器上,它们的依赖难道没有干扰吗?不会,docker将打包好的程序放到一个隔离容器去运行,使用沙箱机制,避免互相干扰,之间不可见,这样就解决了混

    2023年04月24日
    浏览(46)
  • 精品基于SpringCloud实现的电影院购票系统设计-微服务-分布式

    《[含文档+PPT+源码等]精品基于SpringCloud实现的电影院购票系统设计的设计与实现-微服务-分布式》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具: 开发语言:Java 框架:springcloud JDK版本:JDK1.8 服务器:tomcat7 数据库:

    2024年02月09日
    浏览(100)
  • 精品SpringCloud的B2C模式在线学习网微服务分布式

    《[含文档+PPT+源码等]精品基于SpringCloud实现的B2C模式在线学习网站-微服务-分布式》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具: 开发语言:Java 框架:springcloud JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包