【分布式和微服务1】一篇文章详细了解分布式和微服务的基本概念

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

一、系统高可用(High Availability)

(1) 啥是 “高可用” ?

🍀 通俗一点说,高可用的意思是:在并发的情况下,系统仍然是可用
🍀 高可用的目的:保障业务的连续性(实现在用户眼里,业务永远是正常对外提供服务的

微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络
🍀 🍬 【上图】一个 SpringBoot 项目(apple.jar)被部署到服务器上运行,可向其发送网络请求数据库执行增删改查操作
🍀 🍬 随着请求数量逐渐增多,服务器宕机(死机、挂掉)的可能性也越来越高
🍀 🍬 若服务器宕机会导致服务器上的程序无法运行、会导致服务器上的项目无法启动,则该服务器上的项目不是高可用的项目,很容易产生单点故障
🍀 🍬 单点故障:服务器与项目共生(服务器生,项目活;服务器挂,项目死)

🍀 高可用希望实现两个目标🍬:
① 系统的健壮性,不允许出现单点故障
② 提高系统的处理能力,保证系统的运行效率

(2) 集群是啥意思?

服务器就是计算机🖥️,计算机🖥️就是服务器。

❓ 如何实现高可用在高并发的情况下,系统仍然可用 )❓

🤔 思想上:可以把项目部署在多台服务器上( 某台服务器挂了,可以有其他服务器顶上

🍀 集群(cluster):一组 相互独立通过高速网络互联的计算机🖥️的集合

  • 多台计算机🖥️构成一个组( 一个集群 ),这些计算机💻被一种 单一系统的模式 加以管理

✏️单一系统的模式:虽然是多个计算机的集合,但管理和使用的时候与操纵一台计算机无异( 感觉就像是一个单一的系统,而不是多个计算机的集合

  • 集群模式:多台计算机的组合方式

📚 集群模式有三种:
✏️① 主备模式
✏️② 主从模式
✏️③ 高可用模式

① 主备模式

🖊️ 多台服务器的结合构成集群, 其中有一台是主服务器🖥️
🖊️ 正常情况下,只有主服务器🖥️提供服务(主服务器处于 active 状态)
🖊️ 除主服务器之外的都是备用服务器【备用服务器💻平时提供服务,处于 standby待命 )状态】
🖊️ 若主服务器💻宕机,挑选众多备用服务器🖥️中的一台作为新的主服务器💻,继续提供服务
微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络

② 主从模式

  • ✏️ 多台服务器构成集群,每台服务器都提供服务只是不同的服务器提供的功能不同
    微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络

  • ✏️ 【上图】① 服务器接收请求和实时性要求高的请求;② 服务器接收大多数的读请求;③ 减少服务器宕机的可能

③ 高可用模式

🍀 Queries-per-second:单个进程每秒请求服务器的成功次数( 每秒查询率

  • ✏️ 多台服务器的组合构成集群,每台服务器的角色和功能都一样
    微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络

✏️ 【上图】若一台服务器的 Tomcat 每秒支持 250 个并发请求,则台服务器的集合构成的集群服务器每秒可支持750个并发请求

④ 总结

📝 主备集群:避免单点故障
📝 主从集群:避免单点故障;提高并发度和吞吐量
📝 高可用集群:避免单点故障;提高并发度和吞吐量

(3) 分布式(Distribution)

  • 📝 分布式是一种系统部署方式

① 单机部署

微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络
📝【上图】部署应用的方式是单机部署

  • ✏️ 应用服务( Tomcat )和数据库服务( MySQL )部署在同一台服务器上,这种部署方式叫做单机部署
  • ✏️ 好处:Tomcat 和 MySQL 沟通的网络开销很小
  • ✏️ 坏处:Tomcat 和 MySQL 共享服务器的内存空间

② 分布式部署

微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络

📝【上图】部署应用的方式是分布式部署
✏️ 【上图】应用服务( Tomcat )部署在 192.126.111.2 服务器;数据库服务(MySQL)部署在 192.126.111.3 服务器【Tomcat 服务和 MySQL 服务之间通过网络沟通】

  • ✏️ 缺点:两个服务器之间通过网络沟通(存在网络开销)
  • ✏️ 优点:Tomcat 服务和 MySQL 服务独享自己所在服务器的内存空间

(4) 微服务

  • 📝 微服务是系统的一种架构设计方式
  • 📝 微服务一定是分布式
  • 📝 但分布式不一定是微服务
    微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络

✏️ 上图把一个应用全部的功能置于同一个项目同一个应用同一个 jar 包中,这是单体应用


微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络
✏️ 上图根据模块进行划分,每个模块部署在不同的服务器中。服务之间通过网络请求进行访问和沟通,这是微服务架构

(5) 分布式和微服务的对比

✒️① 单体架构所有模块全都耦合在同一个项目中(代码量大,维护困难)

  • 微服务每个模块就相当于一个单独的项目(代码量明显减少,遇到问题也好针对解决)

✒️② 单体架构的所有模块共用一个数据库,存储方式比较单一

  • 微服务架构各个模块可以使用不同的存储方式(如有的用 redis,有的用 MySQL),单个模块( 独立的模块 )对应自己独立的数据库

✒️③ 单体架构所有模块开发所使用的技术一样

  • 微服务每个模块可以使用不同的开发技术,开发模式更加灵活

二、分布式应用

🀄 大数据时代,将会面临三个重大问题:
① 海量数据如何存储 ❓
② 如何对海量数据进行运算 ❓
③ 高并发请求如何处理 ❓
🀄 这些问题都可通过【分布式】进行解决
📝 ① 分布式存储解决海量数据的存储问题
📝 ② 分布式计算处理海量数据的运算
📝 ③ 分布式系统处理高并发的请求

(1) 分布式存储

微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络

🍀 使用 MySQL 数据库可存储数据,但其存储的数据是有限的。假如 MySQL 可存储的数据是 1T,则固定只能存储 1T 的数据,若数据容量超过 1T 就无法存储了

HBase:Hadoop Database 是一个高可靠性、高性能、面向列、可伸缩分布式存储系统。利用 HBase 技术可在廉价 PC Server 上搭建起大规模的结构化的存储集群【百度百科】
微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络

(2) 分布式计算

🎄 分布式计算:分而之,把一个大的计算任务分解为多个小的计算任务进行计算操作
🎄 通过汇总小的计算任务的计算结果,进而得到大的计算任务的结果
微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络
🍬【上图】有一个 计算海量数据中字母个数 的任务。不同的数据被存放在不同的服务器中,计算字母个数的代码放在 A 服务器。把每个服务器的数据都移动到 A 服务器,再进行计算(非常耗费时间、性能低
🍬 最好的做法是: 把计算字母个数的代码移动到不同的服务器,在数据所在的服务器中统计完字母个数后,再把计算结果进行汇总【不耗时:移动运算代码所花费的时间肯定低于移动数据所花费的时间⏰】
🍬 一份 计算字母个数的代码 可能最多100M,而不同服务器上的一份数据肯定是远大于100M的,移动代码(运算)比移动数据划算

分布式计算强调:移动运算,而不是移动数据

(3) 分布式系统

🎄 把应用服务(Tomcat)和数据库服务(MySQL)部署在不同的服务器上,Tomcat 和 MySQL 之间通过网络进行沟通


三、分布式协调服务(以 ZooKeeper 为例)

微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络
🍀 【上图】客户端若想访问秒杀服务,理论上, 需要知道有哪些秒杀服务器可以访问 ❓
🍀 理论上, 需要知道秒杀服务的动态变化(哪些服务器已宕机,哪些服务器上线了)
🍀 但实际上,客户端并没有必要知道服务器的状态
🍀 客户端只需要发送请求就可以了,实际上是那个服务器处理请求❓客户端没有必要知道


🎄 ZooKeeper 在分布式系统中充当协调者的角色,帮助客户端和分布式服务之间进行沟通,保证系统的正常运行。

微服务项目和分布式项目,分布式和微服务,分布式,微服务,网络文章来源地址https://www.toymoban.com/news/detail-782802.html

到了这里,关于【分布式和微服务1】一篇文章详细了解分布式和微服务的基本概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • SpringCloud溯源——从单体架构到微服务Microservices架构 & 分布式和微服务 & 为啥要用微服务

    单体架构好好的,为啥要用微服务呢?微服务究竟是啥,怎么来的,有啥优缺点,本篇博客尝试追根溯源,阐述单体应用到分布式,微服务的演变,微服务架构的定义及优缺点,厘清相关的概念。 1.网络架构变迁史:单体—SOA----微服务; 2.分布式系统,多节点,springcloud是第二

    2024年02月06日
    浏览(27)
  • 微服务系列文章之 Redisson实现分布式锁

    当我们在设计分布式锁的时候,我们应该考虑分布式锁至少要满足的一些条件,同时考虑如何高效的设计分布式锁,这里我认为以下几点是必须要考虑的。 1、互斥 在分布式高并发的条件下,我们最需要保证,同一时刻只能有一个线程获得锁,这是最基本的一点。 2、防止死

    2024年02月15日
    浏览(84)
  • 微服务系列文章之 Redisson实现分布式锁(2)

    1、概念 很明显RLock是继承Lock锁,所以他有Lock锁的所有特性,比如lock、unlock、trylock等特性,同时它还有很多新特性:强制锁释放,带有效期的锁,。 2、RLock锁API 这里针对上面做个整理,这里列举几个常用的接口说明 RLock相关接口,主要是新添加了  leaseTime  属性字段,主要是

    2024年02月16日
    浏览(23)
  • 微服务系列文章之 Redisson实现分布式锁(3)

    1、技术架构 项目总体技术选型 2、加锁方式 该项目支持  自定义注解加锁  和  常规加锁  两种模式 自定义注解加锁 常规加锁 3、Redis部署方式 该项目支持四种Redis部署方式 该项目已经实现支持上面四种模式,你要采用哪种只需要修改配置文件 application.properties ,项目代码

    2024年02月16日
    浏览(28)
  • 【Spring Cloud】新闻头条微服务项目:分布式文件系统MinIO实现文章页面存取

      个人简介:  📦个人主页:赵四司机 🏆学习方向:JAVA后端开发  📣种一棵树最好的时间是十年前,其次是现在! ⏰往期文章:SpringBoot项目整合微信支付 🧡喜欢的话麻烦点点关注喔,你们的支持是我的最大动力。 前言: 最近在做一个基于SpringCloud+Springboot+Docker的新闻头

    2023年04月08日
    浏览(43)
  • 【微服务】6、一篇文章学会使用 SpringCloud 的网关

    📗 身份认证、权限校验 📗 服务路由、负载均衡 📗 请求限流 📝 在 SpringCloud 中有两种网关的技术实现 ✏️ gateway (比 zuul 新) ✏️ zuul ✒️ Zuul 是基于 Servlet 实现的,属于阻塞式编程 ✒️ Gateway 是基于 Spring5 中提供的 WebFlux 实现的。属于响应式编程,具有更好的性能

    2023年04月17日
    浏览(23)
  • 一篇文章掌握WebService服务、工作原理、核心组件、主流框架

    目录 1、WebService定义 解决问题: 2、WebService的工作原理 2.1 实现一个完整的Web服务包括以下步骤 2.2 调用方式 3、Web Service的核心组件 3.1 XML 3.2 SOAP 3.3 WSDL 3.4 UDDI 4、主流框架 4.1 AXIS(已淘汰) 4.2 XFire 4.3 CXF 5、Soap协议详解 1.Soap协议是什么 2.认识Soap 3.结论 4.SOAP小总结 6、WSDL详解

    2024年01月18日
    浏览(39)
  • SSH?Termius?一篇文章教你使用远程服务器训练!

    做深度学习自己电脑配置差?一篇文章教你使用gpu服务器! 在这个迅速变化的数字时代, 深度学习 已经成为科技革命的先锋,而拥有强大并行计算能力的 gpu 则可以成为它强大力量的源泉。 随着现在网络模型的逐渐增大,训练一个基于自己数据集的模型所需要的 gpu算力和显

    2024年02月20日
    浏览(34)
  • 一篇文章学会如何在 NestJS 中开启微服务,微服务实战分享

    在软件开发的世界里,微服务架构是一个经常被提及的概念。但它到底是什么意思呢?为什么现在这么多团队和公司选择使用微服务?而NestJS又是如何帮助开发者构建微服务的? 想象一下,你想建一座大厦。你可以选择由一间强大的公司全权负责,从地基到尖塔的每一部分;

    2024年02月21日
    浏览(27)
  • 关于腾讯云轻量应用服务器性能测评,看这一篇文章就够了

    腾讯云轻量应用服务器性能如何?为什么便宜是不是性能不行?腾讯云百科txybk.com从轻量应用服务器的CPU型号、处理器主频、内存、公网带宽、月流量和系统盘多方面来详细测评轻量性能,轻量应用服务器性价比高,并不是性能不行,只是限制每月流量,轻量还是很值得买的

    2024年02月08日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包