什么是微服务?

微服务(Microservice Architecture)是架构设计方式的一种。
简单来说就是将传统的一站式应用,根据业务拆分成一个一个的服务,
每一个微服务提供单个业务功能的服务,一个服务做一件事情。
这个服务可以单独部署运行,拥有自己独立的数据库。
服务之间可以通过RPC来相互交互,
每个微服务都是由独立的小团队开发,测试,部署,上线,
负责它的整个生命周期。它强调的是服务的大小,关注的是某一个点,
是具体解决某一个问题/提供落地对应服务的一个服务应用,
狭义的看,可以看做是IDEA中的一个个微服务工程,或者Moudel。

微服务架构又是什么?

  • 它提倡将单一的应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程内,服务之间互相协调,互相配置,为用户提供最终价值。
  • 服务之间采用轻量级的通信机制互相沟通,每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境中,另外,应尽量避免统一的,集中式的服务管理机制。
  • 对具体的一个服务而言,应根据业务上下文,选择合适的语言,工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储;

就如果该系统是有很大用户量,其中某些功能会被频繁访问,或者某些功能计算量很大,建议将应用拆解为多个子系统,各自负责各自功能,这就是微服务架构。

什么是分布式?

不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题,提供可扩展性以及高可用性。

业务中使用分布式的场景主要有分布式存储以及分布式计算。
分布式存储中可以将数据分片到多个节点上,不仅可以提高性能(可扩展性),同时也可以使用多个节点对同一份数据进行备份。

集群

集群是指在几个服务器上部署相同的应用程序来分担客户端的请求。
它是同一个系统部署在不同的服务器上,集群主要的使用场景是为了分担请求的压力。
好比 多个人一起做同样的事。

但是,当压力进一步增大时,比如mysql无法面对大量的“写压力”,
mysql做成集群之后,主要的写压力还是在master的机器上,其他slave机器无法分担写压力,这时,就引出了“分布式”。同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题。

首先分布式一定是集群的模式,而集群确不一定是分布式。
分布式可以理解为将“单体应用的项目”分解为不同的模块,
成为不同的子系统(如:京东——将用户、支付、售后、物流、订单、仓储。。。等分解为子系统),
将每个子系统形成自己的集群,成为独立的服务器。
分布式的关键点在于,每个子系统之间需要进行通信,可以RPC等技术进行远程调度。分布式中牵涉到负载均衡(请求的合理分配到每个独立的服务器)
和心跳机制(集群中的每个服务器需要在设定的时间内给服务注册中心进行报告自己的情况,
如果长时间不报告、无回应,注册中心将视该服务器宕机)等技术。

什么是微服务?分布式和集群又是什么?相关推荐

  1. 微服务 分布式、集群杂谈(思绪未整理)

    2019独角兽企业重金招聘Python工程师标准>>> 集群与分布式的区别 集群是一个物理形态,分布式是一种工作方式 集群 同一个业务,部署在多个服务器上,把ERP财务模块这个系统, ...

  2. 微服务注册发现集群搭建——Registrator + Consul + Consul-template + nginx

    在互联网应用领域,服务的动态性需求十分常见,这就对服务的自动发现和可动态扩展提出了很高的要求. 微服务系统动辄上万个服务,而且还要动态伸缩.以人工写好的IP.Port 硬编码脚本的方式无法做到大规模自 ...

  3. 微服务 - 搭建Consul集群服务,Consul配置中心

    传统配置文件的弊端 静态化配置,例如env文件 配置文件无法区分环境 配置文件过于分散 历史版本无法查看 配置中心如何解决的呢?配置中心的思路是把项目中的配置参数全部放在一个集中的地方来管理,并提供一 ...

  4. 微服务自动化【集群搭建】

    目录 搭建 etcd 集群 etcd构建自身高可用集群主要有三种形式: 1. 静态部署(前提) 2. 集群搭建 3. 集群测试 搭建 etcd 集群    etcd构建自身高可用集群主要有三种形式: ...

  5. SpringCloudAlibaba微服务分布式架构

    一.SpringCloudAlibaba简介 待更新 二.Nacos概述 1.什么是nacos? 一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台,相当于注册中心 + 配置中心的组合,等 ...

  6. 集群服务器分布式iis_集群,分布式,微服务,SOA概念

    概念: 分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 1:分布式是指将不同的业务分布在不同的地方.而集群指的是将几台服务器集中在一起,实现同一业务. 分布 ...

  7. 分布式和微服务区别_分布式、集群、微服务到底有啥区别?

    点击上方"不太厉害的程序猿",选择"置顶或者星标" 你关注的就是我关心的! 来源说明:部分信息来源于csdn 概念: 集群是个物理形态,分布式是个工作方式. 1 ...

  8. 分布式、集群、微服务的区别

    概念: 集群是个物理形态,分布式是个工作方式. 分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 1:分布式是指将不同的业务分布在不同的地方.而集群指的是将几 ...

  9. 分布式和集群的概念和区别

    分布式系统是当前比较热门的话题,说到分布式就不得不提集群和单机,如果要学习分布式就要先对他的概念和功能有所了解 单机 单机就是把做的系统部署到一台服务器上,所有的请求业务都由这台服务器处理.显然,当业 ...

最新文章

  1. 吴恩达老师深度学习视频课笔记:多隐含层神经网络公式推导(二分类)
  2. 自定义关机计算机,在win7系统中自定义设置关机壁纸教程介绍
  3. python类装饰器详解-Python装饰器基础概念与用法详解
  4. [动态代理三部曲:上] - 动态代理是如何坑掉了我4500块钱
  5. 机器学习笔记(二):矩阵、环境搭建、NumPy | 凌云时刻
  6. 《畅玩NAS》第3章 ESXI安装OpenMediaVault
  7. 如何更改微信小程序二维码物料颜色
  8. lca rmq 算法资料
  9. iOS Apple Pay开发流程
  10. L1-022 奇偶分家 (10 分) 含解题思路 C语言 位运算
  11. 计算机里为什么显示cpu主频高,cpu主频显示不对是什么原因怎么解决
  12. 第十二届Revit开发训练营4月4日~9日在武汉举办
  13. C++ 之学习大纲网址:文档:C++ knowledge.note 链接:http://note.youdao.com/noteshare?id=c786848810ceb817ae61b76c6bf
  14. linux内核代码研读与实战,Linux内核源码研读与实战演练
  15. to_csv ()出现中文乱码
  16. 【好奇心驱动力】ESP32-CAM人体感应拍照并推送到微信
  17. 计算机选取多个目标按什么键,连续选择多个按什么键
  18. 菜鸟成长记-各种奇葩错误总结
  19. 如何解决NTLDR is missing
  20. 库存转储STO 总结

热门文章

  1. 百度算法不断更新,博客做SEO还有效果吗
  2. 新浪微博AppKey大集合(share)
  3. [原创]发布一个原创作品:Mdisk 把126邮箱变网络硬盘的程序
  4. 推荐武侠沧月的七夜雪
  5. Chrome实现跳过百度网盘客户端下载(较快速灵活的下载大文件)
  6. vs2019 中文离线安装包下载
  7. wordpress代码调用大全
  8. 自制ez-FET lite时烧录5528芯片引导程序
  9. 什么款式蓝牙耳机适合学生党?百元级优质高性价比蓝牙耳机推荐
  10. python 读取excel的所有sheet_names